Xorg-6.7.0

Introducción a Xorg

[Nota]

Nota

Hay dos paquetes en BLFS que implementan el Sistema X Window: Xorg y XFree86. Estos paquetes son muy similares. De hecho, el sistema base de Xorg es XFree86-RC2. La principal diferencia entre ellos es la licencia aplicada a los paquetes: Para alguien que construye un paquete para su propio uso, este tema no tiene relevancia. Muchas distribuciones comerciales grandes han decidido usar el paquete Xorg, pero varias usan aún XFree86.

Una segunda razón para la bifurcación de paquetes X son los objetivos de los desarrolladores. Algunos desarrolladores no eran felices con la administración y el prograso de XFree86. Los planes futuros de Xorg incluyen notables mejoras en el interior del sistema y versiones más frecuentes.

XFree86 continús siendo una aplicación sólida y conservadora con un excelente soporte de dispositivos.

Ambos, Xorg y XFree86, pueden instalarse de la misma forma, pero esta sección proporcionará una variación de la instalación algo diferente y más actual.

Xorg es una implementación en código abierto y libremente redistribuible del Sistema X Window. Esta aplicación suministra una interfaz cliente/servidor entre el hardware (ratón, teclado y monitor) y el entorno de escritorio, mientras que facilita también la infraestructura de ventanas y una interfaz para aplicaciones estandarizada (API).

Información sobre el paquete

Dependencias de X.org

Opcional

Linux-PAM-0.77.

Instrucciones de descarga

Hay varios paquetes que debes obtener de la localización de descarga:

  • X11R6.7.0-src1.tar.gz

  • X11R6.7.0-src2.tar.gz

  • X11R6.7.0-src3.tar.gz

  • X11R6.7.0-src4.tar.gz

  • X11R6.7.0-src5.tar.gz

  • X11R6.7.0-src6.tar.gz

  • X11R6.7.0-src7.tar.gz

El primer paquete contiene las librerías Xorg y programas de soporte, el segundo contiene programas X estándar, el tercero contiene el servidor X, el cuarto y quinto son fuentes, es sexto es la documentación normal y el séptimo es la documentación ya generada.

Para comprobar la integridad de tus descargas, descarga el fichero md5sums. Luego:

md5sum -c md5sums

Los siete paquetes deben estar en correcto estado.

Installation of Xorg

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 mediante:

cat /proc/pci

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). Si activas DRI aquí, asegúrate de seleccionar la tarjeta (o tarjetas) de vídeo para la que quieras soporte como módulo.

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, recompilalo

Copia arch/i386/boot/bzImage y System.map del directorio de construcción de tu núcleo a /boot. Edita /boot/grub/grub.conf y añade el nuevo núcleo al menú de arranque. (Su usas lilo, edita/etc/lilo.conf y ejecuta lilo.)

[Nota]

Nota

Si construyes Xorg en un entorno chroot, asegúrate de que la versión del núcleo del sistema base y del sistema destino es la misma. Esto es especialmente importante si activas el soporte para DRI como módulo, tal y como se ha indicado antes.

Establecer un directorio en la sombra

Cuando construyas Xorg deberías crear un directorio en la sombra de enlaces simbólicos para el código compilado. Para hacer esto, primero crea el lndir. Empezando por el directorio xc:

pushd config/util &&
make -f Makefile.ini lndir &&
cp lndir /usr/bin/ &&
popd

Ahora crea el árbol en la sombra:

mkdir ../xcbuild &&
cd ../xcbuild &&
lndir ../xc

Crear host.def

El siguiente paso es crear el fichero config/cf/host.def. La documentación para Xorg indica que la aplicación se construirá sin un fichero host.def, pero las librerías incluidas para fontconfig y freetype2 no se construyen correctamente en un sistema base LFS. Así que debemos especificar que estas librerías, y también algunas otras, deben importarse del sistema.

[Nota]

Nota

config/cf/host.def es un fichero C, no un guión. Asugurate de que los comentarios delimitados por /* ... */ se encuentran balanceados cuando modifiques el fichero.

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

/* 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. AMD64 es para el procesador Opteron. 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 -fno-strength-reduce -fno-strict-aliasing -march=i686 */
/* #define DefaultGccAMD64Opt -O2 -fno-strength-reduce -fno-strict-aliasing */
/* #define DefaultGcc2AxpOpt  -O2 -mcpu=ev6 */
/* #define DefaultGcc2PpcOpt  -O2 -mcpu=750 */

#define HasFreetype2             YES
#define HasFontconfig            YES
#define HasExpat                 YES
#define HasLibpng                YES
#define HasZlib                  YES

/*
 * Qué controladores construir. Cuando se construye un servidor estático,
 * todos se incluirán en él. Cuando se construye un servidor modular, se
 * construirá un modulo para cada uno.
 *
#define XF86CardDrivers         mga glint nv tga s3virge sis rendition \
                                neomagic i740 tdfx savage \
                                cirrus vmware tseng trident chips apm \
                                GlideDriver fbdev i128 \
                                ati AgpGartDrivers DevelDrivers ark cyrix \
                                siliconmotion \
                                vesa vga XF86OSCardDrivers XF86ExtraCardDrivers
*/

/*
 * Selecciona los dispositivos XInput descomentando esto.
 *
#define XInputDrivers           mouse keyboard acecad calcomp citron \
                                digitaledge dmc dynapro elographics \
                                microtouch mutouch penmount spaceorb summa \
                                wacom void magictouch aiptek
 */

/* Muchas instalaciones solo necesitan esto */

#define XInputDrivers           mouse keyboard


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

Hay muchas otras opciones que podrías tener en cuenta. Un ejemplo bien documentado es config/cf/xorgsite.cf.

Comandos de condtrucción

Instala Xorg ejecutando los siguientes comandos:

( make World 2>&1 | tee xorg-compile.log && exit $PIPESTATUS ) &&
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

Actualizar la Infraestructura de Representación Directa (DRI)

Si tienes una tarjeta de vídeo con soporte DRI y activaste los módulos DRI del núcleo como se explica más arriba, necesitas actualizar los módulos del núcleo para asegurarte que sean compatibles con la versión actual de Xorg. Para esto, haz lo siguiente:

cd programs/Xserver/hw/xfree86/os-support/linux/drm/kernel &&
make  CC=/opt/gcc-2.95.3/bin/gcc -f Makefile.linux  &&
mkdir -p /lib/modules/`uname -r`/kernel/drivers/char/drm/  &&
cp gamma.o radeon.o sis.o r128.o i810.o i830.o mga.o tdfx.o \
    /lib/modules/`uname -r`/kernel/drivers/char/drm/  &&
depmod -a
[Aviso]

Aviso

Si recompilas o actualizas el núcleo, deberás volver a copiar los módulos controladores a la librería de módulos del núcleo y ejecutar depmod -a.

[Nota]

Nota

Si construiste el soporte AGP como módulo al compilar el núcleo, quizás quieras añadir una línea al fichero /etc/modules.conf para asegurarte que se cargue el módulo agpgart. Por ejemplo, la versión AGP de la tarjeta de vídeo Radeon utilizará el controlador radeon.o. Este necesitará tener la línea

below radeon agpgart

en /etc/modules.conf para activar el soporte DRI.

Command explanations

( 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 estandar. 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 exit $PIPESTATUS asegura que como resultado se devuelva el resultado de make y no el del comando tee.

[Nota]

Nota

Para reconstruir Xorg, 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 Xorg. Hacemos esto 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."

make CC=/opt/gcc-2.95.3/bin/gcc -f Makefile.linux: Esto construye los módulos del núcleo compatibles con Xorg usando el mismo compilador que se usó para compilar el núcleo.

cp gamma.o radeon.o sis.o r128.o i810.o i830.o mga.o tdfx.o /lib/modules/`uname -r`/kernel/drivers/char/drm/: Pone los módulos del núcleo donde este pueda encontrarlos. Sólo necesitas copiar el módulo correspondiente a tu tarjeta de vídeo.

depmod -a: Actualiza el fichero modules.dep de administración de módulos.

Configuración de Xorg

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

ldconfig

Comprueba que /usr/X11R6/bin aparece en tu variable de entorno PATH en .bash_profile Las instrucciones para hacerlo se describen en la sección “Los ficheros de inicio de Bash”.

Amplía PKG_CONFIG_PATH para que otros paquetes puedan encontrar las librerías X. El procedimiento para hacer esto se describe también en la sección “Los ficheros de inicio de Bash”.

Activa tu ratón

ln -s psaux /dev/mouse

Ajusta el enlace simbólico de la forma necesaria para otros tipos de ratón. Por ejemplo, un ratón serie en el primer puerto serie debe enlazarse a ttyS0.

Crea el fichero xorg.conf con

cd ~
Xorg -configure

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

Edita xorg.conf.new para afinar tu sistema. Los detalles del fichero se encuentran en la página de manual, man xorg.conf. Algunas cosas que puede que quieras 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 "Monitor". Especifica los valores VertRefresh y HorizSync si el sistema no detecta automáticamente el monitor y los valores correspondientes.

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

  • 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 16. En la subsección para tu profundidad por defecto añade una línea de modos similar a: Modes "1280x1024" "1024x768". El primer modo listado será, normalmente, la resolución de inicio.

Comprueba el sistema con

X -xf86config ~/xorg.conf.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/Xorg.0.log para ver qué ha ido mal.

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

mv ~/xorg.conf.new /etc/X11/xorg.conf

Crea .xinitrc

cat > ~/.xinitrc << "EOF"
# Inicio de .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, Xorg crea el directorio /tmp/.ICE-unix si no existe. Si este directorio no es propiedad de root, Xorg 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 Xorg lo utilice. Añade la creación del fichero 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 X Window básico y funcional.

En este punto, deberias comprobar los componente de X Window en “Componentes de X Window”.