Tabla de contenidos
Resumen
El sistema X Window (X11) es prácticamente el estándar para interfaces gráficas de usuario en Unix. X11 es además un sistema basado en redes. Así, las aplicaciones que estén funcionando en un ordenador pueden mostrar sus datos de salida en otro siempre que ambas máquinas estén conectadas a través de una red. El tipo de red (LAN o Internet) es irrelevante.
En este capítulo le presentamos algunas posibilidades de optimización para su sistema X Window y le ofrecemos información sobre los tipos de letra en SUSE LINUX y la configuración 3D de OpenGL. La descripción de los módulos de YaST para configurar el monitor, la tarjeta gráfica, ratón y teclado está recogida en el Manual de Usuario.
X11™ se desarrolló gracias a la cooperación entre DEC™ (Digital Equipment Corporation™) y el proyecto Athena del MIT™ (Massachusetts Institute of Technology™). La primera versión (X11R1™) vio la luz en septiembre de 1987. Desde la versión 6 (Release 6), X Consortium, Inc.™ así como The Open Group™ desde 1996, se encargan del desarrollo del X Window System™.
XFree™ es una implementación de libre disponibilidad de servidores X para sistemas PC Unix (ver http://www.XFree86.org). XFree sigue siendo desarrollando por programadores de todo el mundo que se unieron en 1992 para formar el equipo XFree. De esta unión surgió en 1994 la empresa The XFree86 Project, Inc.™, cuyo objetivo es poner XFree™ al alcance de un público lo más amplio posible y contribuir al desarrollo e investigación futuros del sistema X Window.
Para usar el hardware existente (ratón, tarjeta de vídeo, monitor, teclado) de la mejor forma posible se puede optimizar la configuración de forma manual. A continuación se discutirán solamente los aspectos más importantes 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/xf86 al igual que en la correspondiente página del manual man XF86Config.
![]() | Aviso |
|---|---|
Se recomienda mucha precaución a la hora de configurar el sistema X Window. Jamás se debe arrancar X 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 AG no se responsabilizan de posibles daños. El presente texto fue redactado con máximo cuidado, no obstante, no se puede garantizar que los métodos presentados sean correctos para su hardware y que no pueda causarles daño. | |
A continuación se describe la estructura del archivo de configuración /etc/X11/XF86Config. 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.
Los programas SaX2 y xf86config generan el archivo XF86 Config 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.
XF86Config 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 4.1. Secciones en /etc/X11/XF86Config
A continuación se contemplan más de cerca las secciones Monitor, Device y Screen. En las páginas del manual relativas a XFree86 y XF86Config encontrará información adicional sobre el resto de secciones.
El archivo XF86Config 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.
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, a la del archivo 4.1, “La sección Screen del archivo /etc/X11/XF86Config”.
Ejemplo 4.1. La sección Screen del archivo /etc/X11/XF86Config
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.
Una sección de dispositivo (Device-Section), describe una determinada tarjeta gráfica. XF86Config 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 XF86Config y man XFree86.
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/XF86Config. En la sección de ServerLayout se determina qué sección de monitor vale 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.
![]() | 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. | |
Si realmente se atreve a hacer sus propias configuraciones de monitor, debería leer antes la documentación de /usr/X11/lib/X11/doc. Se recomienda especialmente la lectura de [fang:93] que explica detalladamente la función del hardware y la definición de los 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.