XFree86-4.4.0

Introducción a XFree86

XFree86 es una implementación en código abierto y de libre distribución del Sistema de Ventanas X. XFree86 proporciona una interfaz cliente/servidor entre el hardware (ratón, teclado y vídeo) y el entorno de escritorio, mientras que también proporciona la infraestructura para la creación de ventanas y una interfaz de aplicaciones estandarizada (API).

Información sobre el paquete

Dependencias de XFree86

Requerida

libpng-1.2.8

Opcionales

Linux-PAM-0.78 y los siguientes paquetes, que se incluyen en la distribución de XFree86 pero que sin embargo se actualizan más seguido que el paquete XFree86 y son muy recomendables: expat-1.95.8, FreeType-2.1.9 y Fontconfig-2.3.1.

[Nota]

Nota

Si eliges no instalar expat, freetype2 y fontconfig, deberás modificar el fichero host.def que hay más abajo para hacer que se construyan junto con XFree86.

Instrucciones para la descarga

Son varios los ficheros que deben obtenerse de la localización de descarga:

  • XFree86-4.4.0-src-1.tgz

  • XFree86-4.4.0-src-2.tgz

  • XFree86-4.4.0-src-3.tgz

  • XFree86-4.4.0-src-4.tgz

  • XFree86-4.4.0-src-5.tgz

  • XFree86-4.4.0-src-6.tgz

  • XFree86-4.4.0-src-7.tgz

Los tres primeros paquetes son los programas de XFreee86, el cuarto y el quinto son fuentes, el sexto es la documentación normal y el séptimo es la documentación lista para consultar. También hay otros dos paquetes, doctools-1.3.1.tgz que contiene programas para regenerar la documentación y utils-1.1.0.tgz que contiene GNU TAR y zlib que ya están instalados en un sistema LFS.

Para comprobar la integridad de los paquetes, descarga el fichero SUMS.md5sum. Luego haz:

md5sum -c SUMS.md5sum

Las únicas diferencias que deberías ver son los ficheros README, doctools-1.3.1.tgz, utils-1.1.0.tgz y XFree86-xtest-4.0.x.tar.bz2 si no los descargaste.

Instalación de XFree86

Ajustes para la compilación del núcleo

Si tienes un Intel P6 (Pentium Pro, Pentium II y superiores) es recomendable que compiles el soporte MTRR (Registros del Rango del Tipo de Memoria) dentro del núcleo. El núcleo puede mapear CPUs Cyrix y AMD en la interfaz MTRR, por lo que seleccionar esta opción también es útil para estos procesadores. Esta opción se encuentra en el menú "Processor type and features" ("Tipo de procesador y características"). Puede incrementar las prestaciones de las operaciones de escritura de imágenes 2.5 veces o más en tarjetas de vídeo PCI o AGP.

En la sección "Character Devices" ("Dispositivos de Caracteres"), activa el soporte para AGP y selecciona el soporte del chipset de tu placa base. Si no conoces el chipset puedes seleccionar todos los tipos a expensas de un tamaño mayor del núcleo. Normalmente puedes determinar el chipset de tu placa base ejecutando el comando lspci, un programa del paquete PCI Utilities-2.1.11.

En la sección "Character Devices", desactiva Direct Rendering Manager ("Administrador de Representación Directa") a menos que tengas una tarjeta de vídeo con soporte para Direct Rendering Infrastructure (DRI, Infraestructura de representación Directa). Encontrarás una lista completa de las tarjetas de vídeo con soporte DRI en la sección Status de http://dri.sourceforge.net. Por el momento, entre las tarjetas soportadas se incluyen las de 3dfx (Voodoo, Banshee), 3Dlabs, ATI (Rage Pro, Rage 128, Radeon 7X00, Radeon 2), Intel (i810, i815) y Matrox (G200, G400, G450).

Adicionalmente, NVidia suministra sus propios controladores binarios de código cerrado que no utilizan DRI. Si piensas usar estos controladores, no actives DRI.

Si haces cualquier cambio en la configuración del núcleo, recompílalo e instálalo

[Nota]

Nota

Si construyes XFree86 en un entorno chroot, asegúrate de que la versión del núcleo del sistema base y del sistema destino es la misma.

Crear host.def

Aunque XFree86 compilará sin un fichero host.def, se recomienda el siguiente fichero para personalizar la instalación. Sitúate dentro del directorio xc.

[Nota]

Nota

El fichero host.def usa la sintaxis de C, no es un típico fichero de configuración. Si realizas algún cambio, asegúrate de abrir y cerrar correctamente los caracteres de comentario (/* y */). La mayoría de las entradas en el fichero de ejemplo están comentadas y muestran los valores por defecto.

cat > config/cf/host.def << "EOF"
/* Inicio del fichero host.def para XFree86 */

/* Información Relativa al Sistema. Si lees y configuras sólo una sección,
 * entonces debe ser esta. La arquitectura Intel se establece por defecto
 * para i686 y superior. Axp es para la arquitectura Alpha y Ppc es para
 * Power PC. Ten en cuenta que se ha informado que la línea de optimización
 * para Ppc provoca violaciones de segmento durante la compilación. Si esto
 * sucede, prueba a construirlo sin la línea DefaultGcc2PpcOpt. ************/

/* #define DefaultGcc2i386Opt  -O2 -fomit-frame-pointer -march=i686 */
/* #define DefaultGcc2AxpOpt   -O2 -mcpu=ev6 */
/* #define DefaultGcc2PpcOpt   -O2 -mcpu=750 */

/* Las siguientes definiciones normalmente se ajustan correctamente por
 * guiones de XFree86. Puedes descomentarlas si quieres asegurarte. ****/

/* #define HasMTRRSupport      YES  */ /* Activado en el núcleo, ver su  documentación*/
/* #define HasMMXSupport        NO  */ /* Cualquier i586 o superior */
/* #define HasKatmaiSupport     NO  */ /* Instrucciones PIII SSE */
/* #define Has3DNowSupport      NO  */ /* Instrucciones AMD */


/* Estos ajustes reducen algo el tiempo de compilación al omitir dispositivos de
 * entrada de raro uso. Encontrarás la lista completa en config/cf/xfree86.cf */

#define XInputDrivers                 mouse void

/* CONTROLADORES DE VÍDEO **************************************************/

/* Si estás seguro de que sólo quieres los controladores para una o unas pocas
 * tarjetas de vídeo, puedes borrar los controladores que no quieras. *********/


#define XF86CardDrivers  mga glint nv tga s3 s3virge sis rendition \
                         neomagic i740 tdfx savage \
                         cirrus vmware tseng trident chips apm \
                         GlideDriver fbdev i128 nsc \
                         ati i810 AgpGartDrivers DevelDrivers ark \
                         cyrix siliconmotion \
                         vesa vga \
                         dummy XF86OSCardDrivers XF86ExtraCardDrivers


/* RUTAS POR DEFECTO DEL USUARIO Y DEL SISTEMA *******************/

/* Estos ajustes establecen las variables PATH usadas por xdm. Mira el README **/
/* para una descripción detallada y modifica lo siguiente según tus necesidades.**/

/* #define DefaultSystemPath /usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin */
/* #define DefaultUserPath /usr/bin:/bin:/usr/X11R6/bin */

/* SERVIDOR DE FUENTES Y AJUSTES DE LIBRERÍAS ****************************/

/* Estos ajustes se establecen por defecto. **********************************/

/* #define BuildFontServer          YES  */ /* Para el servidor de impresión GhostScript*/
/* #define SharedLibFont            YES  */
/* #define CompressAllFonts         YES  */
/* #define GzipFontCompression      YES  */

/* Estos ajustes aseguran que utilicemos nuestras librerías ******************/
#define HasFreetype2             YES
#define HasFontconfig            YES
#define HasExpat                 YES
#define HasLibpng                YES
#define HasZlib                  YES

/* La ruta de las fuentes puede redefinirse en el fichero XF86Config *********/

/*
#define DefaultFontPath                $(FONTDIR)/misc/,$(FONTDIR)/75dpi/,\
$(FONTDIR)/100dpi/,$(FONTDIR)/Type1,$(FONTDIR)/local,\
$(FONTDIR)/TrueType,$(FONTDIR)/CID,$(FONTDIR)/Speedo
*/


/* FUENTES INTERNACIONALES.  Cambia a YES si necesitas alguna. Estas son
 * las opciones por defecto. *************************************************/

/* #define BuildCyrillicFonts            NO  */
/* #define BuildArabicFonts              NO  */
/* #define BuildISO8859_6Fonts           NO  */
/* #define BuildGreekFonts               NO  */
/* #define BuildISO8859_7Fonts           NO  */
/* #define BuildHebrewFonts              NO  */
/* #define BuildISO8859_8Fonts           NO  */
/* #define BuildKOI8_RFonts              NO  */
/* #define BuildJapaneseFonts            NO  */
/* #define BuildJISX0201Fonts            NO  */
/* #define BuildKoreanFonts              NO  */
/* #define BuildChineseFonts             NO  */

/* AJUSTES PARA LA DOCUMENTACIÓN *******************************************/

/* Estos son los ajustes por defecto. *****************************************/

/* #define BuildLinuxDocHtml             NO  */  /* Documentos de X en formato HTML */
/* #define BuildLinuxDocPS               NO  */  /* Y en formato PostScript */
/* #define BuildAllSpecsDocs             NO  */  /* Varios documentos */
/* #define BuildHtmlManPages             NO  */

/* AJUSTES GENERALES: Generalmente querrás dejar esto como está cuando
 * construyas X en un sistema LFS *********************************************/

#define GccWarningOptions         -pipe /* Acelera la compilación*/
#define TermcapLibrary            -lncurses
#define XprtServer                YES /* Necesario para realplayer */
#define XnestServer               YES
#define XAppLoadDir               EtcX11Directory/app-defaults
#define VarLibDir                 /var/lib
#define XFree86Devel               NO
#define FSUseSyslog               YES
#define ThreadedX                 YES
#define HasPam                     NO
#define SystemManDirectory        /usr/share/man /* En vez de /usr/man */
#define HasLibCrypt               YES
#define InstallXinitConfig        YES
#define InstallXdmConfig          YES
#define ForceNormalLib            YES
#define BuildSpecsDocs             NO

/* Fin del fichero host.def para XFree86 */
EOF

Edita el fichero según tu hardware y preferencias.

Comandos de construcción

Se informó de algnas vulnerabilidades en libXpm. Un usuario remoto podría ejecutar código arbitrario en las aplicaciones que usan libXpm. El equipo Xorg liberó un parche para su versión 6.8.0, pero este también funciona con XFree86. Aplica el parche:

patch -Np1 -i ../xorg-CAN-2004-0687-0688.patch

Instala XFree86 ejecutando los siguientes comandos:

sed -i -e "s@^#include <linux/config.h>@/* & */@" \
    `grep -lr linux/config.h *` &&
( make WORLDOPTS="" World 2>&1 | \
    tee xfree-compile.log && exit $PIPESTATUS )

Ahora, como usuario root:

make install &&
make install.man &&
ln -sf ../X11R6/bin /usr/bin/X11 &&
ln -sf ../X11R6/lib/X11 /usr/lib/X11 &&
ln -sf ../X11R6/include/X11 /usr/include/X11

Explicación de los comandos

sed -i -e "s@#include <linux/config.h>@...: El paquete Linux-Libc-Headers instalado en LFS instaló un fichero /usr/include/linux/config.h que no es compatible con las aplicaciones de espacio de usuario. La corrección recomendada para las aplicaciones que incluyan este fichero es borrar esa línea (mira en las FAQ de linux-libc-headers). El comando sed usa grep -lr para reemplazar todas las ocurrencias. Si lo deseas, sólo borra (o comenta) dicha línea en el fichero del controlador de vídeo apropiado si has personalizado host.def.

( make WORLDOPTS="" World 2>&1 | tee xfree-compile.log && exit $PIPESTATUS ): Este comando ejecuta múltiples Makefiles para reconstruir por completo el sistema. WORLDOPTS="" desactiva el comportamiento por defecto de continuar si se produce un error. 2>&1 redirige los mensajes de error a la misma localización que la salida estándar. El comando tee permite visualizar la salida mientras se registran los resultados en un fichero. Los parétiesis que engloban el comando ejecutan el comando completo dentro de un subintérprete de comandos y, por último, el comando exit $PIPESTATUS asegura que se devuelva el resultado de make y no el del comando tee.

[Nota]

Nota

Para reconstruir XFree86, un comando aparte que se puede usar, si sólo se han hecho cambios menores en las fuentes, es make Everything. Este no elimina automáticamente los ficheros generados y sólo reconstruye aquellos ficheros o programas que están anticuados.

ln -sf ../X11R6/bin /usr/bin/X11
ln -sf ../X11R6/lib/X11 /usr/lib/X11
ln -sf ../X11R6/include/X11 /usr/include/X11

Estos comandos están presentes para permitir que otros paquetes (incorrectos) se construyan contra XFree86, aunque el Estándar de la Jerarquía del Sistema de Ficheros (FHS) dice: "En general, el software no debe instalarse o administrarse mediante los enlaces simbólicos anteriores. Están pensados para que solamente los utilicen los usuarios."

Configuración de XFree86

Edita /etc/ld.so.conf y añade /usr/X11R6/lib. Ejecuta

ldconfig

Comprueba que /usr/X11R6/bin y /usr/X11R6/lib/pkgconfig aparecen en tus variables de entorno PATH y PKG_CONFIG_PATH respectivamente. Las instrucciones para hacerlo se describen en la sección Los ficheros de inicio de Bash.

Crea el fichero XF86Config con

cd ~
XFree86 -configure

La pantalla se pondrá negra y puede que oigas algunos clics del monitor. Este comando creará un fichero, XF86Config.new, en tu directorio personal.

Edita XF86Config.new para afinar tu sistema. Los detalles del fichero se encuentran en la página de manual, man XF86Config. Algunas cosas que puedes querer hacer:

  • Sección "Files". Cambiar el orden de búsqueda de las rutas de fuentes. Puede que quieras poner las fuentes de 100dpi delante de las fuentes de 75dpi si tu sistema normalmente se aproxima a los 100 puntos por pulgada. Puede que quieras eliminar algunos directorios de fuentes por completo.

  • Sección "Module". Si vas a instalar los controladores NVidia, borra o comenta la línea "dri".

  • Sección "InputDevice". Puede que quieras cambiar la velocidad de autorrepetición del teclado añadiendo Option "Autorepeat" "250 30".

  • Sección "Monitor". Especifica los valores VertRefresh y HorizSync si el sistema no detecta automáticamente el monitor y los valores correspondientes.

  • Sección "Device". Puedes querer ajustar alguna de las opciones disponibles para tu controlador de vídeo. La descripción de los parámetros del controlador se encuentra en la página de manual del mismo.

  • Sección "Screen". Añade una sentencia DefaultDepth similar a: DefaultDepth 24. En la subsección para tu profundidad por defecto añade una línea de modos similar a: Modes "1600x1200" "1280x1024" "1024x768". El primer modo listado será, normalmente, la resolución de inicio.

Comprueba el sistema con

XFree86 -xf86config ~/XF86Config.new

Sólo obtendrás un fondo de pantalla gris con un puntero de ratón en forma de X, pero esto confirma que el sistema funciona. Ciérralo con Control-Alt-Retroceso. Si el sistema no funciona, revisa /var/log/XFree86.0.log para ver qué ha ido mal.

Mueve el fichero de configuración a su localización final:

mv ~/XF86Config.new /etc/X11/XF86Config

Crea .xinitrc:

cat > ~/.xinitrc << "EOF"
# Inicio del fichero .xinitrc
xterm  -g 80x40+0+0   &
xclock -g 100x100-0+0 &
twm
EOF

Esto proporciona una pantalla inicial con una xterm y un reloj, manejados por un administrador de ventanas simple, el Tab Window Manager. Para los detalles sobre twm, mira su página de manual.

[Nota]

Nota

Cuando es necesario, XFree86 crea el directorio /tmp/.ICE-unix si no existe. Si este directorio no es propiedad de root, XFree86 retrasa su arranque unos segundos e imprime un aviso en el fichero de registro. Esto también afecta al arranque de otras aplicaciones. Para mejorar el rendimiento, se recomienda crear manualmente el directorio antes de que XFree86 lo utilice. Añade la creación del directorio a /etc/sysconfig/createfiles, que es usado como fuente por el guión de inicio /etc/rc.d/init.d/cleanfs.

cat >> /etc/sysconfig/createfiles << "EOF"
/tmp/.ICE-unix dir 1777 root root
EOF

Inicia las X con:

startx

para obtener un Sistema de Ventanas X básico y funcional.

En este punto deberías consultar en “Componentes del sistema X Window” la configuración necesaria para hacer completamente funcional las X. Adicionalmente, puedes revisar en “Configuración adicional de X Windows” la información sobre el ajuste fino de la configuración de las X.

Contenido

El paquete XFree86 contiene el Sistema de Ventanas X para Linux (y otros sistemas operativos). Incluye el servidor X, fuentes, xterm, un administrador de ventanas simple (twm), varias utilidades, controladores de salida de vídeo y varios controladores de entrada incluidos el ratón y el teclado.

XFree86 también contiene librerías y ficheros de cabecera para el desarrollo de programas para el Sistema de Ventanas X.

Descripciones

[Nota]

Nota

La siguiente lista de programas no está completa. La lista completa está en /usr/X11R6/bin. Para información adicional sobre estos programas mira en las respectivas páginas de manual.

Programas instalados: XFree86, xf86config, xf86cfg, startx, xinit, twm, xterm, xwininfo, x11perf, xlsfonts, xvidtune, xload, xcalc, xclock, oclock, xmodmap
Librerías instaladas: libGL.so, libGLU.so, libSM.so, libXi.so, libXrender.so, libXt.so, libXfont.so
Directorios instalados: /usr/X11R6/, /etc/X11/

Descripciones cortas

XFree86

La implementación X11R6 del servidor del Sistema de Ventanas X.

xf86config

Un programa interactivo para generar un fichero XF86Config para su uso con los servidores X de XFree86.

xf86cfg

Una herramienta para configurar XFree86 que puede usarse tanto para escribir el fichero de configuración inicial, como para personalizar la configuración actual.

startx

Un guión que inicializa la sesión X. Lanza xinit.

xinit

Se usa para iniciar el servidor del Sistema de Ventanas X.

twm

(Tab Window Manager) es un administrador de ventanas incluido en el Sistema de Ventanas X.

xterm

Un emulador de terminal para las X.

xwininfo

Una utilidad de información sobre ventanas para X.

x11perf

Un programa de comprobación de las prestaciones del servidor X11.

xlsfonts

Un programa que lista las fuentes disponibles para el servidor X.

xvidtune

Un afinador del modo de vídeo para XFree86.

xload

Un visor de la carga media del sistema para X.

xcalc

Una calculadora científica para X.

xclock

Un programa de reloj para las X.

oclock

Un programa de reloj para las X.

xmodmap

Una utilidad para modificar los mapas del teclado y de los botones del ratón en las X.

Last updated on 2005-04-16 14:07:07 +0200