11.2. Optimizar la configuración de X Window

X.Org es una implementación de código abierto del sistema X Window desarrollada por la X.Org Foundation. Esta organización también se encarga de desarrollar nuevas tecnologías y estándares para el sistema X Window.

Para poder utilizar el hardware existente (ratón, tarjeta gráfica, monitor, teclado) de la mejor manera posible, se puede optimizar la configuración de forma manual. A continuación se discutirán algunos aspectos de esta optimización manual. Puede encontrar información detallada sobre la configuración del sistema X Window en diversos archivos del directorio /usr/share/doc/packages/Xorg así como en la página man man xorg.conf.

[Warning]Aviso

Se recomienda mucha precaución a la hora de configurar el sistema X Window. Jamás se debe arrancar X11 sin haber terminado la configuración. Un sistema mal configurado puede ocasionar daños irreparables en el hardware; los monitores de frecuencia fija corren un riesgo especial. Los autores de este libro y SUSE LINUX no se responsabilizan de posibles daños. El presente texto fue redactado con el máximo cuidado; no obstante, no se puede garantizar que lo métodos presentados sean correctos para su hardware ni que no puedan causarles daño.

Los programas SaX2 y xf86config generan el archivo xorg.conf y lo copian generalmente en el directorio /etc/X11. Este es el archivo de configuración principal del X Window System que contiene las definiciones de ratón, monitor y tarjeta de vídeo.

A continuación se describe la estructura del archivo de configuración /etc/X11/xorg.conf. Este archivo se divide en secciones (sections) que comienzan con la palabra clave Section "nombre" y terminan con EndSection. Estas secciones se explican a grandes rasgos en los siguientes apartados.

xorg.conf se compone de varios párrafos llamados secciones (sections) y cada una contempla un determinado aspecto de la configuración. Cada sección tiene la estructura:

Section "Nombre"
  definición 1
  definición 2
  definición n
EndSection

Existen los siguientes tipos de secciones:

Tabla 11.2. Secciones en /etc/X11/xorg.conf

Tipo

Significado

Files

Esta sección describe las rutas para los juegos de caracteres y la tabla de colores RGB.

ServerFlags

Aquí se apuntan indicadores generales (flags).

InputDevice

Esta es la sección de configuración de los dispositivos de entrada. Se configuran tanto teclados y ratones como dispositivos de entrada especiales tales como joysticks, tabletas digitalizadoras, etc. Las variables importantes aquí son Driver y las opciones Protocol y Device para determinar el protocolo y el dispositivo.

Monitor

Descripción del monitor usado. Los elementos de esta sección son un nombre que se utilizará más adelante como referencia en la definición de la pantalla (Screen), así como el valor de la anchura de banda (Bandwidth [MHz]) y de las frecuencias de sincronización permitidas (HorizSync [kHz] y VertRefresh [Hz]). El servidor rechaza cualquier modeline que no cumpla con la especificación del monitor; de esta forma se evita enviar al monitor por error frecuencias demasiado altas cuando se está experimentando con los modelines.

Modes

Aquí se definen los parámetros para las determinadas resoluciones de pantalla. SaX2 calcula estos parámetros en base a las indicaciones por parte del usuario y por lo general no se requiere ninguna modificación. Se puede realizar una intervención manual por ejemplo en caso de usar un monitor con frecuencia fija. La explicación exacta de todos los parámetros se encuentra en el archivo HOWTO /usr/share/doc/howto/en/XFree86-Video-Timings-HOWTO.gz.

Device

Esta sección define una determinada tarjeta gráfica cuya referencia es el nombre que aparece por detrás de la palabra clave Device.

Screen

Esta sección une finalmente un Monitor con un Device para formar así las indicaciones necesarias para X.Org. La subsección Display permite la definición de un tamaño de pantalla virtual (Virtual), del ViewPort y de los Modes usados con este Screen.

ServerLayout

Esta sección define el diseño de una configuración con uno o varios monitores (“single” o “multihead”). Los dispositivos de entrada InputDevice y los monitores Screen se unen para formar un conjunto.

A continuación se contemplan más de cerca las secciones Monitor, Device y Screen. En las páginas del manual relativas a X.Org y xorg.conf encontrará información adicional sobre el resto de secciones.

El archivo xorg.conf puede contener varias secciones de tipo Monitor y Device. También pueden aparecer diversas secciones Screen. De la siguiente sección ServerLayout depende cuál de ellas se va a utilizar.

11.2.1. Sección Screen

Primero queremos profundizar un poco más en la sección Screen. Esta une una sección de Monitor y de Device y determina qué resolución debe utilizarse con qué profundidad de color. Una sección del tipo Screen puede parecerse, por ejemplo, al Ejemplo 11.1, “La sección Screen del archivo /etc/X11/xorg.conf”.

Ejemplo 11.1. La sección Screen del archivo /etc/X11/xorg.conf

 
Section "Screen" 
  DefaultDepth  16 
  SubSection "Display"
    Depth       16 
    Modes       "1152x864" "1024x768" "800x600" 
    Virtual     1152x864 
  EndSubSection 
  SubSection "Display" 
    Depth       24 
    Modes       "1280x1024"
  EndSubSection 
  SubSection "Display" 
    Depth       32 
    Modes "640x480" 
  EndSubSection 
  SubSection "Display" 
    Depth        8 
    Modes       "1280x1024" 
  EndSubSection 
  Device        "Device[0]" 
  Identifier    "Screen[0]" 
  Monitor       "Monitor[0]" 
EndSection

La línea Identifier (en este ejemplo el identificador es Screen[0]) da un nombre único a la sección para poder identificarla de forma inequívoca en la siguiente sección ServerLayout. La tarjeta gráfica y el monitor definido se asignan mediante las líneas Device y Monitor a la pantalla Screen. No son más que referencias a las secciones de dispositivo (Device) y Monitor con los nombres correspondientes o identificadores (identifiers). Estas secciones se explican más adelante.

La variable DefaultDepth indica la profundidad de color por defecto que usa el servidor cuando arranca sin definición explícita de ella. A cada profundidad de color le sigue una subsección de Display. La profundidad de color de cada subsección se define por la palabra clave Depth. Los valores posibles para Depth son 8, 15, 16, 24 y 32. No todos los módulos de servidor X soportan todos los valores.

Después de definir la profundidad de color se define una lista de resoluciones con Modes. El servidor X lee esta lista de izquierda a derecha. Para cada una de las resoluciones listadas, el servidor busca en la sección Modes un Modeline que pueda ser representada por el monitor y la tarjeta gráfica.

La primera resolución adecuada en este sentido es la que usa el servidor X para arrancar (Default-Mode). Con las teclas CtrL-Alt-gris + se puede navegar en la lista de resoluciones a la derecha y con CtrL-Alt-gris - a la izquierda. Gris indica aquí que se trata de teclas del bloque numérico, ya que estas se resaltan a veces en color gris. Así se puede modificar la resolución en pantalla durante el tiempo de ejecución del sistema X Window.

La última línea de la subsección Display con la expresión Depth 16 se refiere al tamaño de la pantalla virtual. El tamaño máximo de la pantalla virtual depende de la cantidad de memoria instalada y de la profundidad de color deseada pero no depende de la resolución máxima del monitor. Ya que las tarjetas gráficas modernas ofrecen mucha memoria, se pueden crear escritorios virtuales muy grandes. En tal caso es posible que ya no se pueda aprovechar la aceleración 3D por haber ocupado toda la memoria de vídeo con un escritorio virtual. Si la tarjeta tiene por ejemplo 16 MB Vídeo RAM, la pantalla virtual puede ser de hasta 4096x4096(!) puntos con una profundidad de color de 8 Bit. Para los servidores X acelerados no se recomienda de ninguna manera usar todo el espacio de memoria disponible para la pantalla virtual, ya que estos servidores usan la zona de memoria no usada de la tarjeta para diferentes cachés de juegos de caracteres y de zonas de gráficos.

11.2.2. Sección Device

Una sección de dispositivo (Device-Section), describe una determinada tarjeta gráfica. xorg.conf puede incluir una cantidad infinita de secciones de dispositivo siempre que sus nombres, indicados con la palabra clave Identifier, se distingan. Si hay varias tarjetas gráficas montadas en la máquina, estas secciones reciben números consecutivos comenzando con Device[0] para la primera, Device[1] para la segunda, etc. El siguiente archivo muestra el extracto de una sección del tipo Device de un ordenador con una tarjeta PCI tipo Matrox Millennium:

Section "Device" 
  BoardName     "MGA2064W" 
  BusID         "0:19:0" 
  Driver        "mga" 
  Identifier    "Device[0]" 
  VendorName    "Matrox" 
  Option        "sw_cursor" 
EndSection

La sección Device debería ser semejante a la que se muestra arriba si se usa SaX2 para la configuración. SaX2 determina automáticamente Driver y BusID, los cuales dependen del hardware integrado en su máquina. BusID determina la posición que ocupa la tarjeta gráfica en el bus PCI o AGP y es equivalente al número que lspci indica. Hay que tener en cuenta que el servidor X usa valores decimales mientras que los de lspci son hexadecimales.

En el parámetro Driver se determina el controlador para la tarjeta gráfica, que en el caso de la Matrox Millennium es mga. El servidor X busca el controlador en el subdirectorio drivers de la rama ModulePath definido en el apartado Files. La rama completa para una instalación estándar es /usr/X11R6/lib/modules/drivers. El nombre completo del controlador se obtiene añadiendo _drv.o al identificador, lo que resulta en nuestro ejemplo en mga_drv.o.

Existen opciones adicionales para activar ciertas características del servidor X y de su controlador. En este caso se ha usado como ejemplo la opción sw_cursor que desactiva el cursor hecho por hardware para emularlo mediante software. Según el controlador usado, hay diferentes opciones que se explican junto con los controladores en el directorio /usr/X11R6/lib/X11/doc. También puede encontrar opciones generales en las páginas del manual man xorg.conf y man X.Org.

11.2.3. Secciones Monitor y Modes

Las secciones de Monitor y de Modes, así como las de Device, describen un monitor por cada sección y puede haber una cantidad infinita de estas secciones en el archivo de configuración /etc/X11/xorg.conf. En la sección de ServerLayout se determina qué sección de monitor es relevante a efectos de la configuración.

Sólo usuarios muy experimentados deberían generar o ajustar una sección de Monitor (y sobre todo la de Modes) al igual que una sección de tarjeta gráfica. Una parte fundamental de la sección Modes son los Modelines que indican las sincronizaciones (timings) horizontales y verticales para cada resolución. La sección Monitor contiene las características del monitor y entre ellas sobre todo las frecuencias de refresco máximas.

[Warning]Aviso

Sin un buen conocimiento de la función de monitor y de tarjeta gráfica no se debería cambiar ningún valor de los Modelines, ya que esto podría provocar averías en el monitor.  

A quienes deseen desarrollar sus propias descripciones de monitor se les recomienda encarecidamente consultar la documentación disponible en /usr/X11/lib/X11/doc. Mención especial merece la sección dedicada a los modos de video, donde se describe de forma detallada el funcionamiento del hardware y la creación de Modelines.

Por fortuna, hoy en día casi nunca hace falta generar Modelines o definiciones de monitores manualmente. Si dispone de un monitor de multifrecuencia moderno, SaX2 puede leer vía DDC los rangos de frecuencia admitidas y las resoluciones óptimas directamente del monitor. Si esto no fuera posible, siempre se puede recurrir a uno de los modos VESA del servidor X que funcionan prácticamente con todas las combinaciones posibles de monitor y de tarjeta gráfica.


SUSE LINUX Manual de administración 9.3