ant

CONFIGURACIÓN DE LAS X
5.1.3

sig

5.1.3 Configuración de XFree86

Poner a punto XFree86 no suele ser difícil. Sin embargo, si va a usar manejadores de "chipsets" aún en desarrollo o desea obtener el mejor rendimiento o resolución de una tarjeta aceleradora, en configurar a la perfección XFree86 puede tardar bastante.
En esta sección vamos a describir como crear y editar el fichero XF86Config, que configura al servidor. En muchos casos lo mejor es comenzar con una configuración "básica", de baja resolución, como 640x480 puntos, que es soportada por todas las tarjetas y monitores. Una vez comprobado su funcionamiento a baja resolución, puede pasar a modificar la configuración para explotar toda la capacidad de su tarjeta de vídeo.

Además de la información que nosotros le damos, debería leerse la siguiente documentación: o La Documentacion propia de XFree86 en /usr/X11R6/lib/X11/doc (viene con el paquete XFree86-3.1-doc). Debe prestar especial atención al fichero README.Config, que es un tutorial sobre la configuración de XWindows. o Diferentes "chipsets" de vídeo tendrán sus propios ficheros README en el directorio anterior (por ejemplo, README.Cirrus). Léase el que le corresponda. o Las paginas de manual para XFree86. o Las paginas de manual para XF86Config. o Las paginas de manual para el servidor concreto que utilice (como XF86_SVGA o XF86_S3).

El fichero de configuración principal debe ser /usr/X11R6/lib/X11/XF86Config. Este fichero contiene información acerca del ratón, parámetros de la tarjeta gráfica, etc. El fichero XF86Config.ed es un ejemplo que incluye la distribucion. Copie este fichero como XF86Config y modifíquelo para su sistema.

Las paginas de manual para XF86Config explican el formato del fichero con detalles. Lea ahora esas paginas si aun no lo ha hecho. Le vamos a presentar un ejemplo de XF86Config. No tiene por que coincidir con el ejemplo que incluye la distribución, pero en todo caso tendrán estructura parecida.

* Observe que el formato del fichero puede cambiar algo entre versiones de XFree86.
* La información que le damos solo vale para la version 3.1.
* Además, no debe limitarse a copiar este fichero e intentar probarlo en su sistema.
* Si lo hace, y, por error, envía a su monitor una frecuencia demasiado alta para el puede producir una avería.
* No seria el primer caso. Esto ha ocurrido especialmente con monitores de frecuencia fija.
* En definitiva, asegúrese de que su fichero XF86Config se corresponde con su hardware antes de intentar utilizarlo.

Cada sección del siguiente ejemplo de XF86Config se enmarca en un par de líneas Sección <section-name>. . . EndSection. La primera parte del fichero es la sección de Ficheros, que tendrá el siguiente aspecto:
Sección "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
EndSection
La linea RgbPath pone la ruta de acceso a la base de datos de colores RGB para X11R6, y cada linea FontPath pone rutas de acceso a directorios con fuentes X11. Por lo general no tendrá que modificar estas líneas. Tan solo debe comprobar que en los directorios correspondientes se encuentran los ficheros implicados (fuentes, etc).

La siguiente sección es ServerFlags, que especifica algunos "flags" generales para el servidor. Por lo general la sección suele ir vacía.
Sección "ServerFlags"
# Si quita el comentario siguiente, la llegada de una señal al
# provocará el volcado de su memoria. Esto puede dejar la consola en
# un estado inutilizable pero el volcado puede servirle en la depuración.
# NoTrapSignals
# Quitando este comentario se desactiva la secuencia [Crtl][Alt][BS]
# DontZap
EndSection

La siguiente sección es Keyboard. Su significado es claro.
Sección "Keyboard"
Protocol "Standard"
AutoRepeat 500 5
ServerNumLock
EndSection

Existen otras opciones. Vea su fichero XF86Config si desea modificar las opciones de teclado. Las que trae por defecto suelen funcionar bien en casi todos los sistemas. La siguiente sección es Pointer, y especifica los parámetros para el raton.
Sección "Pointer"
Protocol "MouseSystems"
Device "/dev/mouse"
# Los dos parámetros siguientes solo son necesarios en algunos Logitech.
# BaudRate 9600
# SampleRate 150
# La siguiente opcion es útil para ratones Microsoft de dos botones.
# Emulate3Buttons
# La siguiente opcion es útil para algunos ratones con tres botones Logitech.
# ChordMiddle
EndSection
Le pueden interesar las opciones Protocol y Device. Protocol especifica el protocolo que utiliza su raton (no se trata de su marca o modelo). Bajo Linux los protocolos validos son:

BusMouse
Logitech
Microsoft
MMSeries
Mouseman
MouseSystems
PS/2
MMHitTab

BusMouse es el que se usa para raton Logitech en bus. Observar que los ratones antiguos de Logitech usan Logitech pero los mas modernos usan Microsoft o Mouseman. Este es un caso en el que el protocolo no coincide con la marca. Device especifica el dispositivo donde está el ratón. En muchos sistemas Linux se encuentra en /dev/mouse, que suele ser un enlace al dispositivo verdadero (puerto serie como /dev/ttyS1, etc). Por supuesto, debe asegurarse de que el dispositivo que corresponda este en /dev.

La siguiente sección es Monitor, que especifica las características de su pantalla TRC. La sección Monitor de XF86Config puede no ser única, como sucede con otras secciones. Es útil si hay varios monitores conectados al sistema, o si se quiere usar el mismo XF86Config en diferentes configuraciones hardware. Por lo general, sin embargo, solo necesitará una sección Monitor.
Sección "Monitor"
Identifier "CTX 5468 NI"
# !! Estos valores son validos solo para un monitor "CTX 5468 NI"
# No intente usarlo en su monitor si no es este mismo.
Bandwidth 60
HorizSync 30-38,47-50
VertRefresh 50-90
# Modos: Nombre......reloj.........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 linea Identifier se usa para dar a la sección un nombre. Puede ser cualquier cadena de caracteres y se usará después para referirse a ese monitor.
HorizSync es el valor de frecuencia de sincronismo horizontal valida, en kHz. Si tiene un monitor "multisync", puede tratarse de un rango (o diversos rangos separados por comas). Si se trata de un monitor de frecuencia fija, será un conjunto discreto de valores como el siguiente:
HorizSync 31.5, 35.2, 37.9, 35.5, 48.95
El manual de su monitor debería incluir estos datos en las especificaciones técnicas. Si no tiene esta información, contacte con el vendedor o fabricante para obtenerla. Por supuesto, hay otras fuentes de información.
VertRefresh especifica las frecuencias de refresco vertical validas (o sincronismo vertical), en Hz. Como HorizSync puede ser uno o mas rangos o valores discretos. También deben indicarse en su manual.
Los dos parámetros anteriores solo se utilizan para comprobar que los modos gráficos pedidos van a ser tolerados por su monitor.

Esos modos se especifican en las entradas Modeline que tienen el formato siguiente:
ModeLine <nombre> <reloj> <valores-horiz> <valores-vert>
<nombre> es un nombre cualquiera que le damos al modo.
<reloj> es la frecuencia de reloj o "dotclock" asociada al modo. Se suele especificar siempre en Mhz, y es la frecuencia de envío de pixels al monitor para esa resolución.
<valores-horiz> y <valores-vert> son cuatro números que especifican cuando el haz de electrones del monitor debe dispararse y cuando se envían los pulsos de sincronismo.

Se preguntará como determinar esos valores para su monitor. El fichero Videomodes.doc, incluido en la distribucion de XFree86 describe en detalle como obtener los valores requeridos.
En primer lugar, <reloj> debe corresponderse con un valor de los que pueda producir su tarjeta de vídeo.
Por lo tanto solo usará modos con valores de reloj soportados.

En la distribución se incluyen dos ficheros que pueden darle los datos para Modeline de su monitor. Estos ficheros son modeDB.txt y Monitors, ambos en /usr/X11R6/lib/X11/doc. Debería comenzar con valores para el estandar VESA, que la mayor parte de los monitores soportan. Estos valores están incluidos en modeDB.txt. En este fichero encontrará 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
Esta es una temporización estandar VESA para modo 640x480. Utiliza un reloj de 25.175, que debe ser soportado por la tarjeta (esto lo veremos luego). Para incluir esta entrada en el fichero XF86Config usaría la linea
ModeLine "640x480" 25.175 640 664 760 800 480 491 493 525
Observe que el argumento <nombre> (en este caso, "640x480") es una cadena de caracteres arbitraria, aunque se suele seguir la convención de indicar la resolución del modo.
Para cada Modeline indicado, el servidor comprobara que sus valores caen dentro de los rangos permitidos de frecuencias (especificados antes), anulando el modo si no ocurre así.
Principalmente, el valor de reloj no debe ser mayor que el indicado en Bandwidth. Sin embargo, usar valores ligeramente superiores no suele dar problemas.

Si los tiempos estándares en VESA no le funcionan correctamente (lo sabrá cuando después cuando los pruebe) mire los ficheros modeDB.txt y Monitors, que incluyen valores específicos para muchos modelos de monitores. Puede crear entradas Modeline a partir de lo que vea en estos ficheros. Asegúrese de que solo usa valores validos en su monitor. Vea que muchos monitores de 14 o 15 pulgadas no soportan modos de alta resolución como 1024x768 con señales de reloj lentas. Esto significa que si no encuentra modos de alta resolución para su monitor en esos ficheros, no podrá usar dicha resolución.

Si se encuentra perdido, y no encuentra ningún modo que funcione en su monitor, puede seguir las instrucciones de VideoModes.doc, que le ayudaran a calcular las entradas ModeLine adecuadas a partir de las especificaciones que se digan en el manual de su monitor. El mismo fichero VideoModes.doc explica también otros aspectos del servidor de XFree86 como el formato de la directiva ModeLine.

Por íltimo, si obtiene valores para ModeLine que son aceptables pero no del todo correcto, puede modificarlos ligeramente para obtener el resultado deseado. Por ejemplo, si cuando ejecuta XFree86 la imagen se desplaza ligeramente, o parece girar, puede seguir las instrucciones de VideoModes.doc para intentar corregir esas deficiencias. Además, utilice también los propios controles del monitor. Muchas veces es necesario ajustarlos después de cambiar de modo gráfico. Tener esos controles en la parte frontal del monitor le hará la vida mas facil.

* Nunca debe usar valores de tiempo o de Modeline pensados para monitores diferentes al suyo. Si lo intenta hacer, y envía al monitor una frecuencia para la que no fue diseñado, puede producirle una avería.

La siguiente sección del fichero XF86Config es Device, que especifica los parámetros de su tarjeta gráfica. Por ejemplo,
Sección "Device"
Identifier "#9 GXE 64"
# Todavía nada; añadiremos los valores después.
EndSection
Esta sección establece las propiedades de su tarjeta gráfica. Identifier es una cadena de caracteres usada para identificar su tarjeta, cadena que usará para referirse a las características que en esta sección se detallen.

Inicialmente no necesita incluir nada más a la sección Device que la identificación de la tarjeta.

Esto es así pues usaremos el servidor X para probar las propiedades de su tarjeta, para incluirlas luego en esta sección. El servidor X es capaz de obtener el "chipset", "RAMDAC" y memoria RAM de su tarjeta. Antes de hacer esto, sin embargo, necesitamos terminar el fichero XF86Config. La siguiente sección es Screen, que especifica que combinación monitor/tarjeta usar para un servidor concreto.
Sección "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 linea Driver indica que servidor X utiliza. Los valores validos son:

Accel: Para 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 manejadores monocromáticos no VGA que se encuentran en los servidores XF86_Mono y XF86_VGA16.

Debe asegurarse de que /usr/X11R6/bin/X es un enlace simbólico al servidor que va a usar. La linea Device especifica el valor Identifier de la sección Device que corresponda a la tarjeta de vídeo que se va a usar con este servidor. Antes, hemos creado una sección Device con la linea
Identifier "#9 GXE 64"
Así pues, utilizaremos "#9 GXE 64" en la linea Device de aqui.

De forma parecida, la linea Monitor especifica el nombre de la sección Monitor que se va a usar en este servidor. Aqui, "CTX 5468 NI" es el identificador Identifier utilizado en la sección Monitor vista antes.

Subsection "Display" define distintas características del XFree86 con su particular combinación de monitor y tarjeta gráfica. El fichero XF86Config describe todas las opciones en detalle. La mayoría no son necesarias para que el sistema funcione.

Las opciones que debería conocer son:

·Depth. Define el numero de bits por pixel (o planos de color), que normalmente valdrá 8 (supone 256 colores). Para el servidor VGA16 se usara una profundidad de 4, y para el monocromo, una profundidad de 1. Si se utiliza una tarjeta acelerada con suficiente memoria, se puede subir la profundidad a 16, 24 o 32. Si le da problemas, vuelva a profundidad 8 e intente corregir el problema después.
·Modes. Es la lista de modos de vídeo que estarán entre los definidos con ModeLine para su monitor. Los nombres usados antes para identificarlos ("1024x768", etc) se usarán ahora para expresar los modos de la siguiente manera:
Modes "1024x768" "800x600" "640x480"
De esta forma, XFree86 intentará arrancar en el primero de los modos. Una vez que ha arrancado, con las teclas [ctrl][alt]+[numeric] y [ctrl][alt]-[numeric] podrá cambiar a otro modo.

La mejor forma de empezar, cuando se esta configurando XFree86, es usar modos de baja resolución (como 640x480) que suelen funcionar siempre. Una vez que se tenga una configuración básica que va bien, puede pasarse a modificar XF86Config para soportar resoluciones mayores.

·Virtual. Pone el tamaño del área de trabajo virtual. XFree86 es capaz de usar la memoria sobrante de su tarjeta gráfica para extender el tamaño de su área de trabajo. Cuando mueve el ratón a extremos de la pantalla, verá como la pantalla se desplaza, accediendo así a todo el área virtual. Así pues, si usted trabaja con una resolución inferior, como 800x600 y pone un área de 1024x768 (propia para 1 Mbyte de DRAM y 8 bits por pixel) podrá usar un área de trabajo más grande que la que cabe en pantalla.
El mecanismo Virtual resulta interesante para aprovechar toda la memoria de la tarjeta gráfica, pero es limitado. Si quiere usar un área de trabajo virtual, el autor recomienda usar las facilidades que al respecto dan gestores de ventanas como fvwm. El mecanismo aqui se implementa a base de ocultar ventanas, etc. en lugar de ocupar toda la memoria de la tarjeta. Para mas detalle, vea las paginas de manual de fvwm, gestor de ventanas que suelen traer los sistemas Linux por defecto.

·ViewPort. Si usted utiliza la opcion Virtual descrita antes, puede usar ViewPort para indicar en que coordenadas virtuales comenzar XFree86. Se suele usar ViewPort 0 0 que pone el área de trabajo en la esquina superior izquierda. Pero si no se indica se pondrá centrado, algo que quizás le interese más.

Hay muchas otras opciones en esta sección; vea las paginas de manual para XF86Config para más detalle. En la práctica no son necesarias esas otras opciones para que funcione el sistema.

5.1.4 Introducción de los datos de la tarjeta gráfica

Su fichero XF86Config está ya casi listo para usar, aunque aun falta la información de su tarjeta gráfica. Lo que vamos a hacer ahora es usar el servidor X para obtener la información que falta, e introducirla en XF86Config. A veces se puede encontrar esa información en los ficheros modeDB.txt, AccelCards y Devices, que se encuentran en /usr/X11R6/lib/X11/doc. Además, existen numerosos ficheros README para algunos "chipsets". Debe mirar esos ficheros para buscar su tarjeta y usar los valores que aparezcan en ellos (de reloj, tipo de "chipset" y otros) en la sección correspondiente de XF86Config.

Si falta alguna información puede intentar obtenerla con el procedimiento siguiente. En estos ejemplos vamos a ver como configuraríamos el sistema para una tarjeta #9 GXE 64, que usa el servidor XF86_S3. Es la tarjeta que utiliza el autor, aunque el procedimiento es igualmente aplicable a cualquier otra.

Lo primero que debe hacerse es determinar el "chipset" que lleva la tarjeta. Ejecutando /usr/X11R6/bin/SuperProbe lo averiguaremos, aunque también hay que conocer el nombre con el que el servidor X conoce a ese "chipset". Para conseguir esto ultimo, ejecutar:

X -showconfig
Esto le dará los nombres de "chipsets" que conoce el servidor X (esto también se encuentra en las paginas de manual). Por ejemplo, con el servidor XF86_S3 obtendremos:
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
Así pues los nombres de "chipsets" que este servidor tiene son mmio_928 y s3_generic. En la pagina de manual para XF86_S3 encontrará la descripción de estos "chipsets" junto a algunas tarjetas que los utilizan. Para la #9 GXE 64 el "chipset" es mmio_928.
Si no conoce que "chipset" usar, el servidor X puede intentar averiguarlo. Para ello, ejecutar
X -probeonly > /tmp/x.out 2>&1
si usa bash como shell. Si usa csh, intente:
X -probeonly &> /tmp/x.out
El comando anterior debe ejecutarse solo cuando no hay otras actividades en el sistema (otros usuarios, procesos, etc.) Este comando obtiene también los valores para los relojes y si el sistema esta cargado se calcularan incorrectamente. Por ejemplo, esto es lo que sale para la tarjeta del autor:
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
algunas líneas borradas . . .
(--) S3: card type: 386/486 localbus
(--) S3: chipset: 864 rev. 0
(--) S3: chipset driver: mmio_928
Aqui vemos los dos "chipsets" validos (mmio_928 y s3_generic) del servidor. Este probo ambos y determinó que la tarjeta usa el "chipset" mmio_928.

En la sección Device del fichero XF86Config, añada una linea Chipset con el nombre obtenido antes. Por ejemplo,
Sección "Device"
# Este es el identificador que le pusimos...
Identifier "#9 GXE 64"
# Añadimos esta linea:
Chipset "mmio_928"
EndSection
Ahora hay que determinar las frecuencias de reloj. Cada una de estas es simplemente la frecuencia con la que la tarjeta puede enviar pixeles al monitor. Como ya sabemos, estas frecuencias dependen de la resolución usada. En primer lugar debe echar un vistazo a los ficheros mencionados antes (como modeDB.txt) y ver si los relojes de su tarjeta están listados. En su caso vera una lista de 8 o 16 valores, todos ellos dados en Mhz. Por ejemplo, en modeDB.txt encontramos lo siguiente para la tarjeta Cardinal ET4000:
# chip ram virtual clocks default-mode flags
ET4000 1024 1024 768 25 28 38 36 40 45 32 0 "1024x768"
Como vemos, los relojes son 25, 28, 38, 36, 40, 45, 32 y 0 MHz. En la sección Devices del fichero XF86Config debe añadir una linea Clocks como la siguiente (para nuestro ejemplo):
Clocks 25 28 38 36 40 45 32 0
Esto estará en la sección Devices, después de Chipset. Observe la importancia del orden de los relojes. No los cambie. Si no encuentra las frecuencias de reloj para su tarjeta en los ficheros, el servidor X también los puede intentar averiguar. Con el comando ya visto X -probeonly obtendrá una linea como la siguiente:
(--) S3: clocks: 25.18 28.32 38.02 36.15 40.33 45.32 32.00 00.00
Con esta línea podemos hacer la línea Clocks en XF86Config. Si hay muchos valores y no caben en una línea puede crear mas líneas Clock, pero respete el orden de todas formas.

Asegúrese de que no hay ninguna linea Clocks en la sección Devices cuando use el comando X-probeonly puesto que en este caso no hará pruebas reales de los relojes, sino que probara solo los valores que haya en el fichero XF86Config.

Observe que algunas tarjetas aceleradas tienen chip de reloj programable (vea las paginas de manual de XF86_Accel para mas detalle. Estas son aplicables a las tarjetas S3, AGX y XGA-2). Este chip viene a permitir que el servidor X diga a la tarjeta que relojes usar. Si este es el caso, no debe haber una lista de valores validos de reloj en el fichero XF86Config. Si no, la lista de valores de reloj que devuelve X-probeonly contendrá solo uno o dos valores discretos de reloj, dejando el resto copiados de los primeros o a cero.

Para placas con reloj programable, deberá usar una linea ClockChip en lugar de Clocks. Esta línea dá el nombre del chip correspondiente a la tarjeta. Esos nombres se encuentran en las paginas de manual. Por ejemplo, en el fichero README.S3, veremos que diversas tarjetas S3-864 utilizan un chip "ICD2061A", y deberá existir la linea

ClockChip "icd2061a"
en lugar de la linea Clocks en el fichero XF86Config. Como sucede con Clocks, la linea formara parte de la sección Devices e irá a continuación de Chipset.

De manera similar, algunas tarjetas aceleradas requieren que se especifique el tipo de chip RAM-DAC del fichero XF86Config, con una linea Ramdac. Esta opcion se describe en XF86_Accel. Normalmente, el servidor X ya se ocupa de tomar un valor correcto para el RAMDAC.

Algunas tarjetas gráficas necesitan que se especifiquen diversas opciones en la sección Devices. Estas opciones se describen en ficheros como README.cirrus o paginas de manual, y se integran en una linea Opción del fichero XF86Config. Por ejemplo, una tarjeta #9 GXE 64 necesita dos opciones:

Option number_nine"
Option "dac_8_bit"

Normalmente, el servidor X funcionara sin las opciones, pero conviene ponerlas para aumentar el rendimiento de la tarjeta. Hay muchas opciones y muchas particulares de cada tarjeta. Para utilizarlas, mire los ficheros del directorio /usr/X11R6/lib/X11/doc. Así pues, cuando haya acabado, tendrá una sección Devices como la siguiente:
Sección "Device"
# Solo valida para la tarjeta #9 GXE 64 !
Identifier "#9 GXE 64"
Chipset "mmio_928"
ClockChip "icd2061a"
Option ñumber_nine"
Option "dac_8_bit"
EndSection
Observe que en muchos casos se requiere una linea Clocks en lugar de Clockchip, etc. Lo anterior es solo un ejemplo. Hay otras opciones para la sección Devices. Los detalles los vera en las paginas de manual correspondientes.

5.1.5 Funcionamiento de XFree86

Con el fichero XF86Config terminado, puede probar ya el servidor X. En primer lugar, debe asegurarse de que /usr/X11R6/bin esta en el path. El comando para iniciar XFree86 es startx que es un programa que llama a xinit (en el caso de que usted haya usado xinit para iniciar XWindows en otros sistemas).

Este comando arrancará el servidor X y ejecutará los comandos encontrados en el fichero .xinitrc de su directorio home.
.xinitrc es un shell-script que contiene los clientes a ejecutar. Si no existe se buscará un equivalente en /usr/X11R6/lib/X11/xinit/xinitrc.

Un tipico .xinitrc seria el siguiente:
#!/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 y un oclock, y pondrá el fondo (root window) en color midnightblue. Entonces arrancará el gestor de ventanas twm. Observe que twm se ejecuta con la sentencia exec. Esto quiere decir que el proceso de xinit será reemplazado por twm. Por lo tanto, al ordenar la terminación de twm desde los menús el servidor X también terminará. Para hacerlo pulse el botón 1 del raton sobre el fondo de la pantalla (no en las ventanas) y vera un menú con la opción de terminar twm entre otras.

Asegúrese que el ultimo comando de .xinitrc se arranca con exec, y no se le pone en background (con el "&"). Si no, el servidor X terminará tan pronto se arranquen los clientes de .xinitrc.

Otra forma de salir de X es pulsando a la vez [ctrl][alt][backspace].Esto detendrá el servidor X y se saldrá del sistema XWindows.

Lo anterior es una configuración de desktop muy sencilla. Hay otros muchos programas X disponibles que pueden especificarse en el fichero .xinitrc. Por ejemplo, puede usar fvwm en lugar de twm, para obtener un desktop virtual, posibilidad de personalizar colores, fuentes, ventanas...

En principio puede parecer muy simple el sistema XWindows, aunque con las personalizaciones se descubre lo potente que es. Si usted es nuevo en X Windows, le sugerimos que consulte libros como The X Window System: A User's Guide. Aqui se tratan los temas de X Windows en profundidad, que se completarán con las paginas de manual para xterm, twm, etc.

5.1.6 Ejecución con problemas

No siempre le saldrá perfecta la primera prueba con el servidor X. Suele venir causado por un error en el fichero XF86Config. Normalmente, los valores de reloj del monitor o de la tarjeta han sido mal puestos.

Si su pantalla "gira" o los lados están difusos, se trata de un error en los valores para los relojes del monitor.

Otra fuente de problemas es especificar mal el "chipset" de la tarjeta de vídeo así como otras opciones de la sección Device de XF86Config. Compruebe también que el nombre /usr/X11R6/bin/X es un enlace simbólico al servidor X que quiera usar.

Si todo lo anterior no le sirve, prueba a iniciar X en modo "bare", o sea, con el comando:
X > /tmp/x.out 2>&1
A continuación puede matar el servidor X (con la combinación de teclas [ctrl][alt][backspace]) y ver el contenido del fichero /tmp/x.out, en el que el servidor X habrá puesto todo tipo de avisos y errores, como los correspondientes a valores de reloj no encontrados en la tarjeta, etc.

El fichero VideoModes.doc incluido en la distribucion contiene muchas ayudas para calcular los valores para su fichero XF86Config.

Recuerde que puede conmutar entre modos de vídeo con las combinaciones de teclas [ctrl][alt][numeric]. Si la máxima resolución no sale bien, es porque alguna parte del fichero XF86Config se ha puesto mal.

Compruebe también los mandos de tamaño de imagen del monitor. Muchas veces hay que retocarlos cuando se entra en X.
Por ejemplo, si la pantalla se ve desplazada, actúe sobre el mando correspondiente.
El grupo de news USENET comp.windows.x.i386unix encontrará mas ayuda sobre la utilizacion de XFree86. Puede ser una buena idea comprobar si en el grupo alguien ha enviado mensajes con configuraciones para un sistema similar al suyo.