Logo de AulaDigital

XFree86 Como 4

Linux XFree86 COMO: Configuración de XFree86 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:

  • La documentación XFree86, en /usr/X11R6/lib/X11/doc (contenida en el paquete XFree86-3.1-doc). Debe ser leído especialmente el fichero README.Config, que es un tutorial sobre la configuración de XFree86.
  • Varios chipsets de vídeo tienen ficheros README aparte, sitos en el directorio mencionado antes (como README.Cirrus y README.S3). Leánse si son aplicables a su caso.
  • La página man para XFree86.
  • La página man para XF86Config.
  • La página man para el servidor en concreto que se esté usando. (como XF86_SVGA o XF86_S3).

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
  • Logitech
  • Microsoft
  • MMSeries
  • Mouseman
  • MouseSystems
  • PS/2
  • MMHitTab

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:

  • Accel: Para los servidores XF86_S3, XF86_Mach32, XF86_Mach8, XF86_8514, XF86_P9000, XF86_AGX, y XF86_W32 ;
  • SVGA: Para el servidor XF86_SVGA ;
  • VGA16: Para el servidor XF86_VGA16 ;
  • VGA2: Para el servidor XF86_Mono ;
  • Mono: Para los controladores de los servidores no-VGA monocromos de XF86_Mono y XF86_VGA16.

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:

  • Depth. Define el número de planos de color ---el número de bits por pixel---. Normalmente, Depth está configurado a 8. Para el servidor VGA16, se debe usar una profundidad (de color) de 4, y para el servidor monocromo una profundidad de 1. Si se está empleando una tarjeta aceleradora con suficiente memoria para soportar más bits por pixel, se puede definir Depth Profundidad. a 16, 24, o 32. Si se experimentan problemas con profundidades de color superiores a 8, configúrelo para 8 nuevamente e intente solucionar el problema más adelante.
  • Modes. Esta es la lista de nombres de modos de vídeo que han sido definidos empleando la etiqueta ModeLine de la sección Monitor. En la anterior sección empleamos a ModeLines con el nombre "1024x768", "800x600", y "640x480". Por tanto, usaremos una línea Modes tal como
             Modes    "1024x768" "800x600" "640x480"
    
    El primer modo que aparece en esta línea será el adoptado por defecto al arrancar XFree86. Una vez se esté ejecutando XFree86, se puede cambiar entre los modos que aparezcan aquí empleando las teclas ctrl-alt-numerico + y ctrl-alt-numerico -. Lo mejor sería emplear modos de baja resolución al configurar inicialmente XFree86, como 640x480, que tenderán a funcionar en la mayoría de los sistemas. Una vez se tenga la configuración básica funcionando, se puede modificar XF86Config para proporcionar mayores resoluciones.
  • Virtual. Establece el tamaño de escritorio virtual. XFree86 posee la capacidad de emplear la memoria adicional disponible en su tarjeta para aumentar el tamaño de su escritorio. Cuando mueva el puntero del ratón al borde de la pantalla, el escritorio se desplazará, visualizando el espacio adicional. Por tanto, incluso si se emplean los modos de menor resolución como 800x600, se puede definir Virtual a la resolución total que pueda proporcionar su tarjeta (una tarjeta de vídeo de 1 megabyte puede soportar 1024x768 con una profundidad de 8 bits por pixel; una tarjeta de 2 megabytes 1280x1024 con una profundidad de 8, o 1024x768 a una profundidad de 16) N. del T. Recuérdese, esto siempre que la tarjeta CUMPLA los estándares VESA, cosa que no todas hacen, como referenciamos antes, especialmente las superbaratas. . Por supuesto, la superficie al completo nunca podrá estar visible al completo, pero sigue pudiendo ser empleada. La capacidad Virtual es una forma estupenda de emplear la memoria de su tarjeta de vídeo, pero es más bien limitada. Si se desea utilizar un verdadero escritorio virtual, sugerimos emplear fvwm, o un gestor de ventanas similar en su lugar. fvwm permite tener escritorios virtuales suficientemente grandes (implementado mediante la ocultación de ventanas y similar, en vez de almacenar el escritorio completo en la memoria de vídeo de golpe). Ver las páginas man de fvwm para obtener más detalles sobre esto; la mayoría de los sistemas LiNUX emplean fvwm por defecto.
  • ViewPort. Si se emplea la opción Virtual descrita anteriormente, ViewPort define las coordinadas de la esquina superior izquierda del escritorio virtual al arrancar XFree86. Lo más usado es Virtual 0 0; si no se especifica así, el escritorio se centra en la pantalla del escritorio virtual (lo cual puede no ser lo deseado).

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