Anterior Siguiente Indice

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.


Anterior Siguiente Indice