El HOWTO de Linux XFree86

Por Matt Welsh, mdw@sunsite.unc.edu
Traducido por Francisco José Montilla, pacopepe@nova.es

v3.0, 15 Marzo de 1995


Este documento describe cómo obtener, instalar y configurar la versión 3.1.1 de la variante XFree86 del Sistema X Window (X11R6) para sistemas LiNUX. Es una guía paso a paso para configurar XFree86 en su sistema.

1. Introducción

El sistema X Window

N. del T. W-i-n-d-o-w, sin la `s' final, a diferencia de cierto sistema aperitivo ;-)
es un enorme y potente (y en cierto modo, complejo) entorno gráfico para sistemas UNIX. El código original del Sistema X Window fue desarrollado en el MIT
N. del T. Masachussets Institute of Technology, Instituto Tecnológico de Masachussets)
; las casas comerciales han hecho desde entonces de X un estándard industrial para plataformas UNIX. Prácticamente, cada estación de trabajo UNIX que exista en el mundo hace funcionar alguna variante del Sistema X Window.

Ha sido desarrollada una adaptación de libre distribución del Sistema X Window del MIT, versión 11, edición 6 (X11R6) para sistemas UNIX sobre 80386/80486/Pentium, por un equipo de programadores encabezados originariamente por David Wexelblat (dwex@XFree86.org). La edición, conocida como XFree86, está disponible para implementaciones UNIX System V/386, 386BSD, y otras basadas en x86, incluyendo LiNUX. Incluye todos los binarios

N. del T. Ejecutables ya compilados
, ficheros de soporte, librerías y herramientas necesarias.

En este documento, daremos una descripción paso a paso de cómo instalar y configurar XFree86 para LiNUX, aunque tendrás que completar ciertos detalles por tí mismo, leyendo la documentación adjunta a la misma distribución de XFree86. (Esta documentación es discutida más adelante.) No obstante, el uso y personalización del sistema X Window sobrepasa el objetivo de este documento ---para este propósito, deberías hacerte con alguno de los buenos libros existentes sobre el empleo del sistema X Window---

2. Requisitos de Hardware

Como en XFree86 versión 3.1.1, difundida en Febrero del 1995, son soportados los chipsets que detallamos más adelante. La documentación incluida con su adaptador de vídeo debería especificar el chipset que emplea. Si está buscando un nueva tarjeta gráfica, o va a comprar una máquina nueva que la incorpora, haga que el vendedor le especifique con exactitud la marca, modelo, y chipset de la tarjeta. Para ello, es posible que el vendedor tenga que contactar con el servicio técnico para tu propio beneficio; generalmente, los vendedores estarán contentos de hacerlo. Muchos vendedores de hardware para PC dirán que la tarjeta es una "SVGA estándard" que "debería funcionar" en su sistema. Explique que su software (¡mencione LiNUX y XFree86!) no soporta todos los chipsets de vídeo, y que debe tener información detallada.

También se puede determinar el chipset de su tarjeta de vídeo ejecutando el programa SuperProbe que incluye la distribución de XFree86. Esto se trata con mayor detalle más adelante.

Son soportados los siguientes chipsets SVGA

N. del T. Como comprenderá el lector por la fecha de divulgación del presente documento, esta lista no es ni mucho menos actual; una visita a www.xfree86.org es un buen método para obtener información más reciente. Otros lugares de interés: www.nine.com,(información sobre configuraciónes LiNUX de sus tarjetas) www.s3.com
:

Los siguientes chipsets SVGA con prestaciones de aceleración también son soportados:

Las tarjetas que emplean estos chipsets son soportadas en todos las clases de buses, incluyendo VLB y PCI.

Todo lo anterior es soportado tanto en modos monocromo y 256 colores, con la excepción de los chipsets Avance Logic

N. del T. Atención: esta tarjeta ha tenido una difusión muy amplia en España.
, MX y Video 7, que sólo son soportados en el modo de 256 colores. Si su tarjeta de vídeo tiene bastante DRAM instalada, muchos de los anteriores chipsets
N. del T. Por propia experiencia, la Avance Logic tiene idénticas prestaciones con 1 ó 2 megas de DRAM; no soporta más colores por ampliarla a 2 megas :-(.
son soportados en modos de 16 y 32 bits por pixel (más específicamente, algunas tarjetas Mach32, P9000, S3 y Cirrus). La configuración corriente es 8 bits por pixel (osea, 256 colores).

Los servidores monocromos también soportan tarjetas VGA genéricas, y las tarjetas monocromas Hercules, Hyundai HGC1280, Sigma LaserView, y Apollo monochrome. En la Compaq AVGA, sólo son soportados 64k de memoria de vídeo para el servidor monocromo, y la GVGA no ha sido probada con más de 64k.

Esta lista crecerá indudablemente con el tiempo. Las notas de distribución de la versión actual de XFree86 contendrán una relación completa de los chipsets de vídeo soportados.

Un problema al que se enfrentan los desarrolladores de XFree86 es que ciertos fabricantes de tarjetas de vídeo no emplean mecanismos estándar para determinar las frecuencias de reloj empleadas para controlar la tarjeta. Algunos de ellos o no proporcionan especificaciones describiendo cómo programar la tarjeta, o exigen a los desarrolladores firmar una declaración de no-divulgación para obtener la información. Esto limita obviamente la libre distribución del software XFree86, que es algo que no está dispuesto a hacer el equipo de desarrollo de XFree86. Durante bastante tiempo, este ha sido un problema con determinadas tarjetas de vídeo fabricadas por Diamond, pero al tiempo de la divulgación de la versión 3.1 de XFree86, Diamond ha comenzado a trabajar con el equipo de desarrollo a fin de distribuir controladores de libre distribución para estas tarjetas.

La configuración recomendada para XFree86 bajo LiNUX es una máquina 486 con al menos 8 megabytes de RAM, y una tarjeta de vídeo con alguno de los chipsets relacionados anteriormente. Para obtener unas prestaciones óptimas, sugerimos emplear una tarjeta aceleradora, como una tarjeta con chipset S3. Se debe comprobar la documentación de XFree86 y asegurarse de que su tarjeta en particular es soportada antes de decidirse y adquirir hardware costoso. Los índices comparativos de rendimiento para varias tarjetas bajo XFree86 son enviadas regularmente a los newsgroups comp.windows.x.i386unix y comp.os.linux.x.

Como nota al margen, mi sistema personal LiNUX es un 486DX2-66, 20 megabytes de RAM, equipado con un tarjeta de chipset VLB S3-864 con 2 megabytes de DRAM. He ejecutado benchmarks

N. del T. Programas para evaluar las prestaciones de un sistema determinado.
bajo X en esta máquina y en estaciones de trabajo Sun Sparc IPX. El sistema LiNUX es a grosso modo 7 veces más rápido que el Sparc IPX. (Para los curiosos, XFree86-3.1 bajo LiNUX, se ejecuta a alrededor de 171,000 xstones; el Sparc IPX a alrededor de 24,000). En general, XFree86 en un sistema LiNUX con tarjeta aceleradora le proporcionará muchas más prestaciones que las encontradas en estaciones de trabajo UNIX comerciales (que generalmente utilizan simples framebuffers
N. del T. Genéricamente, dispositivo físico capaz de almacenar información sobre una imagen en memoria.
para los gráficos)

Su máquina precisará al menos 4 megabytes de RAM física, y 16 megabytes de RAM virtual global. (por ejemplo, 8 megas de física y 8 megas de swap

N. del T. Mecanismo por el cual se pasan a disco páginas de memoria RAM cuando ésta se agota. En adelante, me referiré a este sistema como paginación también.
). Recuérdese que cuanta más RAM física se tenga, menos paginará el sistema al y desde el disco cuando la memoria esté baja. Debido a que la paginación es inherentemente lenta (los discos son muy lentos comparados con la memoria), el tener 8 megabytes o más de RAM es lo necesario para hacer funcionar XFree86 confortablemente. Un sistema con 4 megabytes
N. del T. Para aquellos que no puedan disponer de más, o por razones de espacio en el HD, decir a título informativo que existe el paquete Tiny-X para estos casos.
de RAM física podría funcionar mucho más lento (hasta 10 veces) que uno con 8 o más megas.

3. Instalación de XFree86

La distribución binaria de XFree86 puede encontrarse en varios servidores de FTP. En sunsite.unc.edu, se encuentra en /pub/Linux/X11. ( En el momento de escribir esto, la versión actual es la 3.1.1; se distribuyen nuevas versiones periódicamente).

Es muy probable que se haya obtenido XFree86 como parte de una distribución LiNUX, en cuyo caso el obtener el software por separado no es necesario.

Si se obtiene XFree86 por FTP directamente, la siguiente relación enumera los archivos de la distribución XFree86-3.1.

Se requiere uno de los siguientes servidores:

XF86-3.1.1-8514.tar.gz

Servidor para tarjetas basadas en 8514.

XF86-3.1.1-AGX.tar.gz

Servidor para tarjetas basadas en AGX.

XF86-3.1.1-Mach32.tar.gz

Servidor para tarjetas basadas en Mach32.

XF86-3.1.1-Mach8.tar.gz

Servidor para tarjetas basadas en Mach8.

XF86-3.1.1-Mono.tar.gz

Servidor para modos de vídeo monocromos.

XF86-3.1.1-P9000.tar.gz

Servidor para tarjetas basadas en P9000.

XF86-3.1.1-S3.tar.gz

Servidor para tarjetas basadas en S3.

XF86-3.1.1-SVGA.tar.gz

Servidor para tarjetas basadas en Super VGA.

XF86-3.1.1-VGA16.tar.gz

Servidor para tarjetas basadas en VGA/EGA.

XF86-3.1.1-W32.tar.gz

Servidor para tarjetas basadas en ET4000/W32.

Son necesarios todos los siguientes archivos:

XF86-3.1.1-bin.tar.gz

El resto de los binarios de X11R6.

XF86-3.1.1-cfg.tar.gz

Archivos de configuración xdm, xinit y fs.

XF86-3.1.1-doc.tar.gz

Documentación y páginas man.

XF86-3.1.1-inc.tar.gz

Archivos include.

XF86-3.1.1-lib.tar.gz

Librerías X compartidas y ficheros de soporte.

XF86-3.1-fnt.tar.gz

Fuentes (tipográficas) básicas.

Son opcionales los siguientes archivos:

XF86-3.1-ctrb.tar.gz

Programas de contribución seleccionados.

XF86-3.1-extra.tar.gz

Servidores XFree86 extra y binarios.

XF86-3.1-lkit.tar.gz

Kit de enlace de Servidores para personalizaciones.

XF86-3.1-fnt75.tar.gz

Fuentes de pantalla de 75-dpi.

XF86-3.1-fnt100.tar.gz

Fuentes de pantalla de 100-dpi.

XF86-3.1-fntbig.tar.gz

Fuentes grandes Kanji y otras.

XF86-3.1-fntscl.tar.gz

Fuentes escalables (Speedo, Tipo1).

XF86-3.1-man.tar.gz

Páginas de manual.

XF86-3.1-pex.tar.gz

Binarios PEX, archivos include y librerías.

XF86-3.1-slib.tar.gz

Librerías estáticas X y archivos de soporte.

XF86-3.1-usrbin.tar.gz

Demonios

N. del T. Para los que vienen del dos, son análogos a los TSRs.
que residen en /usr/bin.
XF86-3.1-xdmshdw.tar.gz

Versión de ``Shadow password'' de xdm.

El directorio XFree86 debe contener archivos README y notas de la instalación para la versión actual.

Todo lo necesario para instalar XFree86 es hacerse con los anteriores ficheros, crear el directorio /usr/X11R6 (como root), y descomprimir los archivos de /usr/X11R6 con un comando como:

gzip -dc XF86-3.1.1-bin.tar.gz | tar xfB -
Recuérdese que estos archivos tar son empaquetados en relación con /usr/X11R6. Por tanto, es importante desempaquetar los archivos ahí.

Tras desempaquetar los archivos, lo primero que se necesita es enlazar el archivo /usr/X11R6/bin/X al servidor que se esté usando. Por ejemplo, si se desea usar el servidor color SVGA, se debe enlazar /usr/bin/X11/X con /usr/X11R6/bin/XF86_SVGA. Si en lugar de este se desea emplear el servidor monocromo, reenlazar este archivo con XF86_MONO mediante el comando

ln -sf /usr/X11R6/bin/XF86_MONO /usr/X11R6/bin/X
Lo mismo continúa siendo cierto si se emplea alguno de los demás servidores.

Si no se está seguro de cuál servidor usar, o no se conoce el chipset de la tarjeta, se puede ejecutar el programa SuperProbe, que se encuentra en /usr/X11R6/bin (está incluido en el paquete XF86-3.1-bin listado anteriormente). Este programa intentará determinar el tipo de chipset y otra información; anotar sus resultados para posteriores referencias.

Es preciso asegurarse de que /usr/X11R6/bin esté en el path. Esto puede conseguirse editando el fichero por defecto de su sistema /etc/profile o /etc/csh.login (basado en el shell o intérprete de comandos que Vd. u otros usuarios del sistema utilicen.) O se puede simplemente añadir el directorio al path personal modificando /etc/.bashrc o /etc/.cshrc, dependiendo del shell empleado.

También es preciso asegurarse de que /usr/X11R6/lib pueda ser localizado por ld.so, el runtime linker

N. del T. ¿Alguna sugerencia para traducir este término? ¿enlazador dinámico de librerías (o es muy ``liberal'' esta traducción)?.
. Para hacer esto, añadir la línea
/usr/X11R6/lib
al fichero /etc/ld.so.conf, y ejecutar /sbin/ldconfig, como root.

4. Configuración de XFree86

La configuración de XFree86 no es difícil en la mayoría de los casos. De todos modos, si se da el caso de que emplees hardware cuyos controladores estén en desarrollo, o desees obtener las mejores prestaciones o resoluciones de una tarjeta gráfica aceleradora, la configuración de XFree86 puede requerir tiempo en algún aspecto.

En esta sección describiremos cómo crear y editar el archivo XF86Config, que configura el servidor XFree86. En muchos casos es mejor empezar con una configuración ``básica'' de XFree86, que emplee una resolución baja, como 640x480, que debería ser soportada por todas las tarjetas de vídeo y monitores de todo tipo. Una vez se tenga XFree86 funcionando a resolución baja, estándar, se podrá jugar con la configuración para explotar las posibilidades de su hardware de vídeo. La idea es que lo que se debe saber es si XFree86 funciona del todo en su sistema, y de que no hay nada erróneo en la configuración, antes de intentar la a veces difícil tarea de configurar XFree86 para su auténtico uso.

Además de la documentación relacionada aquí, se debe leer la siguiente documentación:

El fichero principal de configuración de XFree86 es /usr/X11R6/lib/X11/XF86Config. Este fichero contiene información de su ratón, parámetros de su tarjeta de vídeo, y demás cosas relacionadas. El fichero XF86Config.eg se adjunta con la distribución como ejemplo. Copiar este fichero a XF86Config y editarlo como punto de partida.

La página man de XF86Config explica el formato de este fichero en detalle. Léase esta página ahora, si es que no lo ha hecho todavía.

Vamos a presentar un fichero de configuración de muestra XF86Config, parte por parte. Este archivo puede no parecerse exactamente al fichero incluido con la distribución de XFree86, pero la estructura es la misma.

Téngase en cuenta que el formato del archivo XF86Config puede variar con cada versión de XFree86; esta información sólo es válida para la versión 3.1 de XFree86.

Asimismo, no se debe copiar sin más el fichero de configuarción descrito aquí a su sistema e intentar usarlo. El intentar emplear un fichero de configuración que no se corresponde a su hardware puede someter al monitor a funcionar a una frecuencia demasiado alta para el mismo; se ha informado de monitores (especialmente monitores de frecuencia fija) que han sido dañados o inutilizados por el uso de ficheros XF86Config configurados incorrectamente. La conclusión: Asegúrese completamente de que su archivo XF86Config se corresponde a su hardware antes de intentar hacer uso de él.

Cada sección del fichero XF86Config va entre el par de líneas

Section "section-name"
  ...
EndSection
La primera parte del fichero XF86Config es Files, que tiene este aspecto:

Section "Files"
    RgbPath     "/usr/X11R6/lib/X11/rgb"
    FontPath    "/usr/X11R6/lib/X11/fonts/misc/"
    FontPath    "/usr/X11R6/lib/X11/fonts/75dpi/"
EndSection

La línea RgbPath define la trayectoria o path hacia la base de datos de color de X11R6, y cada línea FontPath define la trayectoria hacia el directorio que contenga las fuentes X11. En general no hace falta modificar estas líneas; basta con cerciorarse de que hay una entrada FontPath por cada tipo de fuente que se haya instalado (es decir, por cada directorio de /usr/X11R6/lib/X11/fonts).

La siguiente sección es ServerFlags, que especifica distintos parámetros para el servidor. Generalmente esta sección está vacía.

Section "ServerFlags"
# descomentar esto puede causar un ``core dump'' en el punto en que
# se reciba una signal. Esto puede dejar la consola en un estado inoperante,
# pero puede proveer un seguimiento de los fallos mejor al core dump para
# ayudar a localizar errores
#    NoTrapSignals

# Descomentar esto para inhabilitar la secuencia de salida del servidor 
#    DontZap
EndSection
Aquí tenemos todos los renglones comprendidos por las secciones descomentados.

La siguiente sección es Keyboard. Esta deberá ser bastante intuitiva.

Section "Keyboard"
    Protocol    "Standard"
    AutoRepeat  500 5
    ServerNumLock
EndSection
Hay más opciones disponibles ---ver el fichero XF86Config si se quiere modificar la configuración del teclado--- lo anterior debe funcionar en la mayoría de los sistemas.

La siguiente sección es Pointer, que especifica los parámetros para el ratón.

Section "Pointer"

    Protocol    "MouseSystems"
    Device      "/dev/mouse"

# Baudrate y SampleRate son solo para algunos ratones Logitech 
#    BaudRate   9600
#    SampleRate 150

# Emulate3Buttons es una opcion para los ratones de 2 botones tipo Microsoft
#    Emulate3Buttons

# ChordMiddle es una opcion para algunos ratones de 3 botones Logitech
#    ChordMiddle

EndSection
Las únicas opciones que deberían afectarle por ahora son Protocol y Device. Protocol especifica el protocolo que su ratón usa (no la marca o modelo del ratón). Los tipos válidos de Protocol (bajo LiNUX, hay otras opciones disponibles para otros Sistemas Operativos) son: BusMouse Debe ser empleado con el ratón tipo busmouse Logitech. Téngase en cuenta que los ratones antiguos Logitech usarán protocolos Logitech, pero los nuevos ratones Logitech emplean protocolos tanto Microsoft como Mouseman. Este es un caso en el que el protocolo no tiene que ver necesariamente con la marca o modelo del ratón.

Device especifica el fichero de dispositivo con el que se puede acceder al ratón. En la mayoría de los sistemas LiNUX, es /dev/mouse. /dev/mouse ES generalmente un enlace al puerto serie apropiado (como /dev/cua0) para un ratón serie, o al dispositivo busmouse para ratones busmouse. En cualquiera de los casos, asegurarse de que el fichero de dispositivo mencionado en Device existe.

La siguiente sección es Monitor, que especifica las características de tu monitor. Como con otras secciones del fichero XF86Config, puede haber más de una sección Monitor. Esto es útil si se tiene más de un monitor conectado a un sistema, o si se emplea el mismo fichero XF86Config con multiples configuraciones de hardware. No obstante, en general, sólo se necesitará una sección Monitor.

Section "Monitor"

    Identifier  "CTX 5468 NI"

    # Estos valores son unicamente para un CTX 5468NI! No intentar emplearlo 
    # con su monitor (a menos que tenga este modelo)

    Bandwidth    60
    HorizSync    30-38,47-50
    VertRefresh  50-90

    # Modes: Name      dotclock  horiz                vert 

    ModeLine "640x480"  25       640 664 760 800      480 491 493 525
    ModeLine "800x600"  36       800 824 896 1024     600 601 603 625
    ModeLine "1024x768" 65       1024 1088 1200 1328  768 783 789 818

EndSection

La línea Identifier se emplea para otorgar un nombre arbitrario a la entrada Monitor. Esta puede ser una cadena; se empleará para referirse posteriormente a la entrada Monitor en el fichero XF86Config.

Estas son listadas a continuación.

HorizSync especifica las frecuencias horizontales de sincronismo para su monitor, en kHz. Si se tiene un monitor multisync, tiene que ser un rango de valores (o varios rangos separados por comas), como se ve a continuación. Si se tiene un monitor de frecuencia fija, debe ser una relación de valores concretos, como:

    HorizSync    31.5, 35.2, 37.9, 35.5, 48.95
El manual del monitor debe proporcionar esos valores en las especificaciones técnicas. Si no se dispone de esta información, se puede contactar tanto con el fabricante como con el vendedor del monitor para obtenerlas. También existen otras fuentes de información.

VertRefresh especifica los intervalos verticales de refresco horizontal válidos (o frecuencias de sincronismo vertical) para el monitor, en Hz. Como HorizSync, este dato puede ser un intervalo o una lista de valores discretos; el manual del monitor debe de tener una lista de ellos.

HorizSync y VertRefresh se emplean sólo para comprobar doblemente que las resoluciones de pantalla que se especifiquen están comprendidas en los intervalos válidos. Esto se hace para disminuir el riesgo de dañar el monitor, intentando hacerlo funcionar a una frecuencia para la que no está diseñado.

la indicación ModeLine se emplea para especificar una única resolución para el monitor. El formato de ModeLine es

ModeLine nombre valores_de_reloj valores_horiz. valores_vert.
nombre es una cadena arbitraria, que se empleará para referirse a dicho modo de resolución en el archivo posteriormente. valores_de_reloj son las frecuencias de reloj a las que se somete, o ``dot-clock'' asociado a dicho modo de resolución. La frecuencia de reloj se especifica normalmente en MHz, y es el rango al cual la tarjeta de vídeo deberá mandar los ``pixels'' al monitor a esa resolución. valores_horiz y valores_vert son cuatro valores, especificando cada uno cuándo debe de dispararse el haz de electrones, y cuándo tienen lugar los pulsos horizontales y verticales de sincronismo durante un barrido.

¿Cómo se pueden determinar los valores de ModeLine para su monitor? El fichero VideoModes.doc, incluido con la distribución de XFree86, describe en detalle cómo determinar esos valores para cada modo de resolución que soporte el monitor. Antes que nada, valores_de_reloj debe corresponderse a uno de los valores de ``dot-clock'' que pueda producir su tarjeta. Posteriormente, en el archivo XF86Config especificaremos estos valores; sólo se pueden usar modos de vídeo con un valor de frecuencia_de_reloj soportados por la tarjeta de vídeo.

Hay dos ficheros incluidos en la distribución de XFree86 que puede que contengan valores de ModeLine para su monitor. Estos archivos son modeDB.txt y Monitors, residiendo ambos en /usr/X11R6/lib/X11/doc.

Se debe comenzar con los valores de ModeLine para los tiempos correspondientes al monitor estándar VESA, que son soportados por la mayoría de los monitores. modeDB.txt incluye valores de tiempo para resoluciones VESA estándar. En ese fichero, se verán entradas como:

# 640x480@60Hz Non-Interlaced mode
# Horizontal Sync = 31.5kHz
# Timing: H=(0.95us, 3.81us, 1.59us), V=(0.35ms, 0.064ms, 1.02ms)
#
# name        clock   horizontal timing     vertical timing      flags
 "640x480"     25.175  640  664  760  800    480  491  493  525
Este es un valor de tiempo estándar VESA para un modo de vídeo 640x480. Emplea un ``dot-clock'' de 25.175, que debe de ser soportado por la tarjeta de vídeo para usar este modo (más sobre esto después). Para incluir esta entrada en el archivo XF86Config, deberá emplearse la línea:
ModeLine "640x480" 25.175 640 664 760 800 480 491 493 525
Téngase en cuenta que el argumento nombre para ModeLine (en este caso "640x480") es una cadena de valores arbitrarios --- por convención, se nombra el modo tras la resolución, pero nombre puede ser técnicamente cualquier dato descriptivo que dé una referencia sobre el modo para nosotros.---

Para cada ModeLine empleado, el servidor comprobará que las especificaciones para dicho modo caen dentro del intervalo de valores especificados con Bandwidth, HorizSync y VertRefresh. Si no es así, el servidor protestará cuando se intente iniciar X (más sobre esto más adelante). Por cierta razón, el ``dot-clock'' empleado por el modo en cuestión no deberá ser mayor que el valor usado por Bandwidth. (No obstante, en muchos casos es más seguro el uso de modos con un ancho de banda ligeramente mayor del que el monitor puede soportar.) Si los valores estándar VESA no funcionan en su caso (sabrá, tras intentarlo, usarlos más adelante) es momento de mirar en modeDB.txt y Monitors, que incluyen valores para modos específicos de muchos tipos de monitor. Se pueden crear entradas ModeLine para los valores hallados en esos dos ficheros también. Asegúrese de sólo emplear valores para el modelo específico de monitor que se tenga. Téngase en cuenta que muchos monitores de 14 y 15 pulgadas no soportan los modos de resolución más altos, ni a veces resoluciones de 1024x768 a valores bajos de frecuencias de reloj. Esto significa que si no puede encontrar modos de alta resolución para su monitor en esos archivos, es muy probable que el monitor no los soporte.

Si se está completamente perdido, y no se puede hacer funcionar los valores ModeLine para su monitor, se puede seguir las instrucciones del archivo VideoModes.doc, incluido con la distribución de XFree86, para generar valores de ModeLine de las especificaciones enumeradas en el manual del monitor. Aunque el tiempo requerido para intentar generar valores ModeLine a mano puede variar, este es un buen sitio donde mirar si no se encuentran los valores que se precisan. VideoModes.doc también describe el formato de la indicación ModeLine y otros aspectos del servidor XFree86 con morboso detalle.

Por último, si se obtienen valores ModeLine que son casi, pero no del todo correctos, puede ser posible ir modificando ligeramente sus valores hasta obtener los resultados deseados. Por ejemplo, si al ejecutarse XFree86 la imagen del monitor se desvía ligeramente, o parece fluctuar, se pueden seguir las instrucciones del fichero VideoModes.doc para intentar corregir esos valores. ¡Asegúrese también de comprobar los mandos del monitor propiamente dicho! En muchos casos es necesario cambiar el tamaño horizontal o vertical de la imagen tras arrancar XFree86 para centrarla y ajustar su tamaño correctamente. El tener dichos mandos de control en el frontal del monitor pueden desde luego hacerle la vida más fácil.

No se deben emplear valores de frecuencia o de ModeLine para otros modelos de monitor que no sea el suyo. Si se intenta someter al monitor a otra frecuencia para la que no esté diseñado, se puede dañar o incluso inutilizar definitivamente.

La siguiente sección del fichero XF86Config es Device, que especifica los parámetros de su tarjeta de vídeo. He aquí un ejemplo.

Section "Device" 
        Identifier "#9 GXE 64"

        # Nada por ahora; completaremos estos valores posteriormente.

EndSection

Esta sección define las propiedades de una tarjeta de vídeo en particular. Identifier es una secuencia arbitraria que describe a la tarjeta; usaremos esta secuencia para referirnos a la tarjeta posteriormente.

Inicialmente, no es preciso incluir nada en la sección Device, excepto en Identifier. Esto se debe a que emplearemos el propio servidor X para probar las propiedades de la tarjeta de vídeo, introduciéndolas en la sección Device más tarde. El servidor XFree86 es capaz de comprobar el chipset de vídeo, las frecuencias de reloj, RAMDAC, y la cantidad de RAM de vídeo que tiene la tarjeta.

No obstante, antes de que hagamos esto, necesitamos terminar de escribir el fichero XF86Config. La siguiente sección es Screen, que especifica la combinación de tarjeta de vídeo/monitor a usar por un servidor en particular.

 Section "Screen"
     Driver     "Accel"
     Device     "#9 GXE 64"
     Monitor    "CTX 5468 NI"
     Subsection "Display"
         Depth      16
         Modes      "1024x768" "800x600" "640x480"
         ViewPort   0 0
         Virtual    1024 768
     EndSubsection
 EndSection

La línea Driver especifica el servidor X que se va a emplear. Los valores válidos para Driver son:

Debe de asegurarse de que /usr/X11R6/bin/X es un enlace simbólico al servidor que se esté empleando.

La línea Device especifica la secuencia Identifier de la sección Device correspondiente a la tarjeta de vídeo a emplear para dicho servidor. Anteriormente, creamos una sección Device con la línea

Identifier "#9 GXE 64"
Por tanto, empleamos "#9 GXE 64" en la línea Device aquí.

Análogamente, la línea Monitor especifica el nombre de la sección Monitor a usarse con este servidor. Aquí, "CTX 5468 NI" es el Identifier empleado para la sección Monitor descrita anteriormente.

Subsection "Display" define varias propiedades del servidor XFree86 correspondientes a su combinación de monitor/tarjeta de vídeo. El archivo XF86Config describe todas estas opciones en detalle; la mayoría de ellas son para ``poner la guinda'' al pastel y no son necesarias para hacer funcionar el sistema.

Las opciones que debe conocer son:

Existen muchas opciones para esta sección; ver la página man de XF86Config para una descripción completa. En la práctica no son necesarias estas opciones para conseguir que XFree86 funcione inicialmente.

5. Introducción de información sobre la tarjeta de vídeo.

Ahora su archivo XF86Config está listo para funcionar, con la excepción de la información completa sobre la tarjeta de vídeo. Lo que vamos a hacer es emplear el servidor X para comprobar el resto de la información, introduciéndola posteriormente en XF86Config.

En lugar de tantear esta información usando el servidor X, los valores XF86Config para muchas tarjetas están listados en los ficheros modeDB.txt, AccelCards, and Devices. Estos archivos se encuentran todos en /usr/X11R6/lib/X11/doc. Además, hay varios archivos README

N. del T. Léame.
para determinados chipsets. Se debe buscar en esos ficheros información sobre su tarjeta de vídeo, y emplearla (los valores de frecuencias de reloj, tipo de chipset, y las posibles opciones) en el archivo XF86Config. Si no hay ningún tipo de información, se puede tantear como se describe aquí.

En estos ejemplos mostraremos la configuración para una tarjeta de vídeo #9 GXE 64, que emplea el chipset XF86_S3. Se da la circunstancia de que esta tarjeta es la que emplea el autor, pero lo discutido aquí es aplicable a cualquier tarjeta.

Lo primero a hacer es determinar el tipo de chipset de vídeo empleado en la tarjeta. Si ejecuta SuperProbe (que reside en /usr/X11R6/bin) le informará acerca de esto, pero se necesita conocer el nombre del chipset de vídeo como lo conoce el servidor X.

Para hacer esto, ejecute el comando

X -showconfig
Esto le proporcionará los nombres de chipset conocidos por su servidor X. (Las páginas man los enumeran también). Por ejemplo, para el servidor acelerador XF86_S3, obtenemos:
XFree86 Version 3.1 / X Window System
(protocol Version 11, revision 0, vendor release 6000)
Operating System: Linux 
Configured drivers:
  S3: accelerated server for S3 graphics adaptors (Patchlevel 0)
      mmio_928, s3_generic

Los nombres válidos de chipset para este servidor son mmio_928 y s3_generic. La página man del servidor XF86_S3 describe estos chipsets y qué tarjetas los emplean. En el caso de la tarjeta de vídeo #9 GXE 64, el apropiado es mmio_928.

Si no se sabe qué chipset usar, el servidor X puede comprobarlo por tí. Para hacer esto, ejecutar el comando

X -probeonly > /tmp/x.out 2>&1
si se emplea bash como intérprete de comandos. Si se emplea csh, probar:
X -probeonly &> /tmp/x.out 

Este comando debe ser ejecutado cuando el sistema no esté bajo carga, es decir, mientras no tenga lugar ninguna otra actividad en el sistema. Este comando intentará calcular las frecuencias de reloj de su tarjeta (como vimos antes), y la carga del sistema puede estropear los cálculos.

El resultado de lo anterior (en /tmp/x.out) debe contener líneas como las que siguen:

XFree86 Version 3.1 / X Window System 
(protocol Version 11, revision 0, vendor release 6000) 
Operating System: Linux  
Configured drivers: 
  S3: accelerated server for S3 graphics adaptors (Patchlevel 0) 
      mmio_928, s3_generic 
   ... 
(--) S3: card type: 386/486 localbus 
(--) S3: chipset:   864 rev. 0 
(--) S3: chipset driver: mmio_928 
Aquí observamos que los dos chipsets válidos para este servidor (en este caso, XF86_S3) son mmio_928 y s3_generic. El servidor tras tantear encontró una tarjeta de vídeo empleando el chipset mmio_928.

Añadir en la sección Device del archivo XF86Config una línea Chipset, que contenga el nombre del chipset determinado anteriormente. Por ejemplo,

Section "Device" 
        # Aqui ya teniamos definido el identificador...
        Identifier "#9 GXE 64"  
        # adicion de esta linea:
        Chipset "mmio_928"
EndSection

Ahora necesitamos determinar las frecuencias de funcionamiento de reloj empleadas por la tarjeta de vídeo. La frecuencia de funcionamiento de reloj, o dot clock es simplemente la velocidad a la que la tarjeta de vídeo puede enviar puntos de imagen o pixels al monitor. Como hemos visto, cada resolución de monitor tiene un dot clock asociado a él. Ahora necesitamos determinar cúales frecuencias de reloj son utilizables por la tarjeta de vídeo.

Primero debe de mirar en los archivos (modeDB.txt, y demás) mencionados anteriormente, y ver si las frecuencias de reloj de su tarjeta se enumeran allí. Los dot clocks serán normalmente listados de 8 ó 16 valores, todos los cuales están en MHz. Por ejemplo, si miramos en modeDB.txt podemos observar una entrada para la tarjeta de vídeo Cardinal ET4000, que tiene este aspecto:

# chip    ram   virtual   clocks                           default-mode  flags
 ET4000   1024  1024 768   25  28  38  36  40  45  32   0  "1024x768"    
Como podemos observar, las frecuencias de barrido para esta tarjeta son 25, 28, 38, 36, 40, 45, 32, y 0 MHz.

En la sección Devices del fichero XF86Config, se debe añadir una línea Clocks que contenga el listado de dot clocks para su tarjeta. Por ejemplo, para los clocks anteriores, añadiríamos la línea

        Clocks 25 28 38 36 40 45 32 0
A la sección Devices del fichero, tras Chipset. ¡Téngase en cuenta que el orden de los valores es importante! no desordene el listado o borre los duplicados.

Si no se pueden encontrar las frecuencias de barrido asociadas a su tarjeta, el servidor X puede también tantearlas. Empleando el comando X -probeonly descrito anteriormente, el resultado contendría líneas con el siguiente aspecto:

(--) S3: clocks:  25.18  28.32  38.02  36.15  40.33  45.32  32.00  00.00
Podemos entonces añadir una línea Clocks que contenga todos esos valores, tal y como los obtenemos. Se puede usar más de una línea Clocks en XF86Config en el caso de que todos los valores no cupiesen en una. Nuevamente, es preciso asegurarse de que se introducen en el mismo orden en que son proporcionados.

Asegúrese de que no hay una línea Clocks (o de que esté descomentada) en la sección Devices del fichero al usar X -probeonly para tantear las frecuencias. Si hubiese una línea Clocks presente, el servidor no tantearía esos valores, emplearía los valores presentes en XF86Config.

Téngase en cuenta que algunas tarjetas aceleradoras emplean chips de frecuencias programables. (ver la página man de XF86_Accel para más detalles; esto generalmente es aplicable a tarjetas S3, AGX y XGA-2.) Este chip permite, esencialmente, al servidor X, comunicar a la tarjeta qué dot clocks usar. Si este es el caso, puede que no se pueda encontrar el listado de los dot clocks para la tarjeta en ninguno de los ficheros anteriores. O la lista de las frecuencias de reloj obtenida al usar X -probeonly puede sólo contener uno o dos valores concretos, siendo el resto duplicados o cero.

Para tarjetas que empleen un chip programable, se debe emplear un línea ClockChip, en lugar de Clocks en el fichero XF86Config. ClockChip proporciona el nombre del chip que emplea la tarjeta de vídeo; las páginas man de cada servidor describen cuáles son. Por ejemplo, en el fichero README.S3, podemos ver que varias tarjetas S3-864 emplean un chip ``ICD2061A'', y que debemos emplear la línea

   ClockChip "icd2061a" 
en lugar de Clocks en el archivo XF86Config. Como con Clocks, esta línea deberá estar en la sección Devices, tras Chipset.

Análogamente, algunas tarjetas aceleradoras precisan que se especifique el tipo de chip RAMDAC en el fichero XF86Config, empleando una línea Ramdac. La página man de XF86_Accel describe esta opción. Normalmente, el servidor X averiguará correctamente el RAMDAC.

Algunas tarjetas de vídeo requieren que se especifiquen ciertas opciones en la sección Devices de XF86Config. Estas opciones serán descritas en la página man de su servidor, así como en otros ficheros (como README.cirrus o README.S3. Estas opciones son activadas empleando la línea Option. Por ejemplo, la tarjeta #9 GXE 64 necesita dos opciones:

        Option "number_nine" 
        Option "dac_8_bit" 
Generalmente, el servidor X funcionará sin estas opciones, pero son necesarias para conseguir prestaciones óptimas. Hay demasiadas opciones para describirlas aquí, y cada una depende de la tarjeta de vídeo empleada en particular. Si debe usar alguna de estas opciones, ---me temo que no--- las páginas man del servidor X y algunos ficheros en /usr/X11R6/lib/X11/doc especificarán cuáles son.

Así que cuando se haya terminado, se acabará con una sección Devices que tendrá este aspecto:

Section "Device"  
        # Esta seccion device es para esta #9 GXE 64 solo! 
        Identifier "#9 GXE 64" 
        Chipset "mmio_928" 
        ClockChip "icd2061a" 
        Option "number_nine" 
        Option "dac_8_bit" 
EndSection 
La mayoría de las tarjetas de vídeo precisarán una línea Clocks, en lugar de ClockChip, como se describió anteriormente. La anterior sección Device es únicamente válida para una tarjeta de vídeo en particular, la #9 GXE 64.

Hay otras opciones que pueden ser incluidas en la sección Devices. Comprobar las páginas man del servidor para los detalles más escurridizos, aunque lo anterior debe de bastar para la mayoría de los sistemas.

6. Ejecución de XFree86

Con el fichero XF86Config configurado, se está preparado para arrancar el servidor X y dar un garbeo. Lo primero, asegurarse de que /usr/X11R6/bin está en el path.

El comando para arrancar XFree86 es

startx
Este es una ``cubierta'' de xinit (en caso de que se estuviese acostumbrado a emplear xinit en otros sistemas UNIX).

Este comando arrancará el servidor X y ejecutará los comandos que se encuentran en el fichero .xinitrc

N. del T. Para los usuarios de RedHat, .Xclients.
. en su directorio home .xinitrc es simplemente un script que contiene clientes X a ejecutar. Si este fichero no existe, se empleará por defecto /usr/X11R6/lib/X11/xinit/xinitrc.

Un fichero .xinitrc convencional tiene este aspecto:

#!/bin/sh

xterm -fn 7x13bold -geometry 80x32+10+50 &
xterm -fn 9x15bold -geometry 80x34+30-10 &
oclock -geometry 70x70-7+7 &
xsetroot -solid midnightblue &

exec twm 
Este script arrancará dos clientes xterm, un oclock, y configura el color de la ventana raíz (el fondo) a midnightblue. Arrancará entonces twm, el gestor de ventanas. Téngase en cuenta que twm, se ejecuta con el mandato del intérprete de comandos exec ; esto hace que el proceso xinit sea reemplazado por twm. Una vez que el proceso twm finalice, se cerrará el servidor X. Se puede hacer finalizar twm empleando los menús principales: presionando el botón 1 del ratón sobre el fondo del escritorio, se abrirá un menú emergente que permitirá Exit Twm.

Es preciso asegurarse de que el último comando de .xinitrc se arranca con exec, y que no se coloca en modo de ejecución background o segundo plano (sin un ``&'' al final de la línea). De no ser así, el servidor X moriría tan pronto como se arrancasen los clientes del fichero .xinitrc

Alternativamente, se puede salir de X presionando la combinación ctrl-alt-backspace. Esto mataría al servidor X directamente, saliendo del sistema de ventanas.

Lo anterior es una muy muy simple configuración del escritorio. Multitud de maravillosos programas y configuraciones estarán disponibles con trabajar un poco el fichero .xinitrc. Por ejemplo, el gestor de ventanas fvwm proporciona escritorio virtual, pudiendo personalizarse colores, fuentes, tamaño y posiciones de ventanas, y así según le plazca a uno. A pesar de que el Sistema X Window pueda parecer un tanto simplista en un principio, es extremadamente potente, ya que puede ser personalizado para uno mismo.

Si es la primera vez que se encuentra con el entorno X Window, le recomendamos encarecidamente hacerse con un libro como The X Window System: A User's Guide. El empleo y configuración de X es demasiado profundo para tratarlo aquí. Ver las páginas man de xterm, oclock, y twm para hacerse con pistas para ponerse al día.

7. Aparición de Problemas

A veces, algo no irá del todo bien cuando se arranque el servidor X. Esto suele estar causado casi siempre por un problema en el archivo XF86Config. Generalmente, los valores de frecuencia del monitor no están, o las frecuencias dot clock de la tarjeta de vídeo están definidos de forma incorrecta. Si la pantalla parece fluctuar, o los bordes están deformados, es una clara indicación de que los valores de frecuencia o dot clocks del monitor son erróneos. Asegúrese también de que de que se esté especificando correctamente el chipset de su tarjeta de vídeo, así como otras opciones de la sección Device del fichero XF86Config. Hay que estar absolutamente seguro de que se emplea el servidor X correcto y de que /usr/X11R6/bin/X es un enlace simbólico a este servidor.

Si todo lo demás falla, trate de arrancar X ``a pelo''; es decir emplee un comando como:

X > /tmp/x.out 2>&1 
Se puede entonces matar el servidor X (empleando la combinación de teclas ctrl-alt-backspace) y examinar el contenido de /tmp/x.out. El servidor X informará de todas las advertencias o errores ---por ejemplo, si la tarjeta de vídeo no tiene un dot clock que se corresponda con un modo soportado por el monitor.

El fichero VideoModes.doc incluido en la distribución XFree86 contiene muchas sugerencias de cómo manipular los valores de su fichero XF86Config.

Recuerde que puede emplear ctrl-alt-numerico + y ctrl-alt-numerico - para ir conmutando entre los modos de vídeo listados en la línea Modes de la sección Screen de XF86Config. Si el modo de mayor resolución a no parece correcto, trate de cambiar a resoluciones menores. Esto le permitirá saber, por lo menos, que esas partes de su configuración de X están funcionando correctamente.

Compruebe también los controles de posición y tamaño horizontal y vertical de su monitor. En muchos casos, es necesario ajustarlos cuando se arranca X. Por ejemplo, si la pantalla parece estar movida ligeramente

N. del T. Ligeramente es eso, ligeramente.
a un lado, normalmente se puede corregir esto usando los controles del monitor.

El newsgroup de USENET comp.windows.x.i386unix está dedicado a discusiones sobre XFree86, así como comp.os.linux.x. Sería una buena idea observar ese newsgroup para enviar consultas relativas a su configuración de vídeo ---puede que se encuentre con alguien con los mismos problemas que uno tiene.---

8. Copyright

Este documento es Copyright (c)1995 de Matt Welsh. Este trabajo puede ser reproducido en su totalidad o en parte, tanto de forma impresa como electrónica, sujeto a las siguientes condiciones:

  1. La notificación del copyright y esta licencia debe preservarse completa en todas las copias, tanto completas como parciales.
  2. Cualquier traducción o trabajo derivado debe de ser aprobado por el autor por escrito antes de su distribución.
  3. Si se distribuye el Trabajo parcialmente, deben de incluirse instrucciones para poder obtener la versión completa (en forma impresa o electrónica), así como los medios para conseguirla.
  4. Pueden ser reproducidas pequeñas porciones como ilustraciones para revistas o citas para otros trabajos sin esta notificación de permiso si se cita apropiadamente su procedencia.

Pueden otorgarse excepciones a estas normas para propósitos académicos; escríbase al autor del trabajo, y pregúntesele. Estas restricciones están para proteger a los autores, no para restringiros como educadores o alumnos.

9. La Traducción

Este documento ha sido traducido por Francisco José Montilla, pacopepe@nova.es, FidoNet 2:345/402.22 fundador-coordinador-componente del INSFLUG (Impatient & Novatous Spanish Fidonet LiNUX Users Group) uno de los varios grupos de usuarios existentes en España, y más concretamente en la mejor ;-) área de FidoNet: R34.LINUX junto con LuCas y otros.

La presente traducción se encuentra amparada por los mismos derechos expresados en la sección Copyright.

Actualmente están siendo traducidos varios HOWTOs y FAQs, además de las ``guides'' El ``Linux Installation and Getting Started'' ya está traducido, así como el Kernel-HOWTO Term-Howto y varios más; todo lo que se vaya haciendo estará en:

ftp://luna.gui.uva.es/pub/docs-esp/

y en formato HTML, con links a los demás formatos, en la página personal de Juan José Amor, además de BBSs de FidoNet como La Voix, Elektra, etc, que se irán notificando por R34.LINUX.

Si quieres colaborar traduciendo, elaborando algún documento en especial, o cualquier otra cosa, no tienes más que ponerte en contacto con cualquiera de los contactos detallados a continuación. Espero que la presente traducción te haya sido útil.

INSFLUG:

Francisco José Montilla, pacopepe@nova.es, FidoNet 2:345/402.22

LuCas:

Juan José Amor, jjamor@gedeon.ls.fi.upm.es
Alfonso Belloso, alfon@bipv02.bi.ehu.es

La documentación traducida puedes conseguirla de:

http://lml.ls.fi.upm.es/~jjamor/
http://luna.gui.uva.es

FidoNet:

y más sitios de los que tendrás noticia en R34.LINUX.

................................................................................................. Francisco José Montilla Blanco (PacoPepe)