mdw@sunsite.unc.edu
pacopepe@nova.es
El sistema X Window
N. del T. W-i-n-d-o-w, sin la `s' final, a diferencia de cierto sistema aperitivo ;-)es un enorme y potente (y en cierto modo, complejo) entorno gráfico para sistemas UNIX. El código original del Sistema X Window fue desarrollado en el MIT
N. del T. Masachussets Institute of Technology, Instituto Tecnológico de Masachussets); las casas comerciales han hecho desde entonces de X un estándard industrial para plataformas UNIX. Prácticamente, cada estación de trabajo UNIX que exista en el mundo hace funcionar alguna variante del Sistema X Window.
Ha sido desarrollada una adaptación de libre distribución del Sistema
X Window del MIT, versión 11, edición 6 (X11R6) para sistemas UNIX sobre
80386/80486/Pentium, por un equipo de programadores encabezados
originariamente por David Wexelblat (dwex@XFree86.org
).
La edición, conocida como XFree86, está disponible para implementaciones
UNIX System V/386, 386BSD, y otras basadas en x86, incluyendo LiNUX. Incluye
todos los binarios
N. del T. Ejecutables ya compilados, ficheros de soporte, librerías y herramientas necesarias.
En este documento, daremos una descripción paso a paso de cómo instalar y configurar XFree86 para LiNUX, aunque tendrás que completar ciertos detalles por tí mismo, leyendo la documentación adjunta a la misma distribución de XFree86. (Esta documentación es discutida más adelante.) No obstante, el uso y personalización del sistema X Window sobrepasa el objetivo de este documento ---para este propósito, deberías hacerte con alguno de los buenos libros existentes sobre el empleo del sistema X Window---
Como en XFree86 versión 3.1.1, difundida en Febrero del 1995, son soportados los chipsets que detallamos más adelante. La documentación incluida con su adaptador de vídeo debería especificar el chipset que emplea. Si está buscando un nueva tarjeta gráfica, o va a comprar una máquina nueva que la incorpora, haga que el vendedor le especifique con exactitud la marca, modelo, y chipset de la tarjeta. Para ello, es posible que el vendedor tenga que contactar con el servicio técnico para tu propio beneficio; generalmente, los vendedores estarán contentos de hacerlo. Muchos vendedores de hardware para PC dirán que la tarjeta es una "SVGA estándard" que "debería funcionar" en su sistema. Explique que su software (¡mencione LiNUX y XFree86!) no soporta todos los chipsets de vídeo, y que debe tener información detallada.
También se puede determinar el chipset de su tarjeta de vídeo ejecutando
el programa SuperProbe
que incluye la distribución de XFree86.
Esto se trata con mayor detalle más adelante.
Son soportados los siguientes chipsets SVGA
N. del T. Como comprenderá el lector por la fecha de divulgación del presente documento, esta lista no es ni mucho menos actual; una visita a www.xfree86.org
es un buen método para obtener información más reciente. Otros lugares de interés: www.nine.com,(información sobre configuraciónes LiNUX de sus tarjetas) www.s3.com
:
Los siguientes chipsets SVGA con prestaciones de aceleración también son soportados:
Las tarjetas que emplean estos chipsets son soportadas en todos las clases de buses, incluyendo VLB y PCI.
Todo lo anterior es soportado tanto en modos monocromo y 256 colores, con la excepción de los chipsets Avance Logic
N. del T. Atención: esta tarjeta ha tenido una difusión muy amplia en España., MX y Video 7, que sólo son soportados en el modo de 256 colores. Si su tarjeta de vídeo tiene bastante DRAM instalada, muchos de los anteriores chipsets
N. del T. Por propia experiencia, la Avance Logic tiene idénticas prestaciones con 1 ó 2 megas de DRAM; no soporta más colores por ampliarla a 2 megas :-(.son soportados en modos de 16 y 32 bits por pixel (más específicamente, algunas tarjetas Mach32, P9000, S3 y Cirrus). La configuración corriente es 8 bits por pixel (osea, 256 colores).
Los servidores monocromos también soportan tarjetas VGA genéricas, y las tarjetas monocromas Hercules, Hyundai HGC1280, Sigma LaserView, y Apollo monochrome. En la Compaq AVGA, sólo son soportados 64k de memoria de vídeo para el servidor monocromo, y la GVGA no ha sido probada con más de 64k.
Esta lista crecerá indudablemente con el tiempo. Las notas de distribución de la versión actual de XFree86 contendrán una relación completa de los chipsets de vídeo soportados.
Un problema al que se enfrentan los desarrolladores de XFree86 es que ciertos fabricantes de tarjetas de vídeo no emplean mecanismos estándar para determinar las frecuencias de reloj empleadas para controlar la tarjeta. Algunos de ellos o no proporcionan especificaciones describiendo cómo programar la tarjeta, o exigen a los desarrolladores firmar una declaración de no-divulgación para obtener la información. Esto limita obviamente la libre distribución del software XFree86, que es algo que no está dispuesto a hacer el equipo de desarrollo de XFree86. Durante bastante tiempo, este ha sido un problema con determinadas tarjetas de vídeo fabricadas por Diamond, pero al tiempo de la divulgación de la versión 3.1 de XFree86, Diamond ha comenzado a trabajar con el equipo de desarrollo a fin de distribuir controladores de libre distribución para estas tarjetas.
La configuración recomendada para XFree86 bajo LiNUX es una máquina 486 con
al menos 8 megabytes de RAM, y una tarjeta de vídeo con alguno de los chipsets
relacionados anteriormente. Para obtener unas prestaciones óptimas, sugerimos
emplear una tarjeta aceleradora, como una tarjeta con chipset S3. Se debe
comprobar la documentación de XFree86 y asegurarse de que su tarjeta en
particular es soportada antes de decidirse y adquirir hardware costoso. Los
índices comparativos de rendimiento para varias tarjetas bajo XFree86 son
enviadas regularmente a los newsgroups comp.windows.x.i386unix
y
comp.os.linux.x
.
Como nota al margen, mi sistema personal LiNUX es un 486DX2-66, 20 megabytes de RAM, equipado con un tarjeta de chipset VLB S3-864 con 2 megabytes de DRAM. He ejecutado benchmarks
N. del T. Programas para evaluar las prestaciones de un sistema determinado.bajo X en esta máquina y en estaciones de trabajo Sun Sparc IPX. El sistema LiNUX es a grosso modo 7 veces más rápido que el Sparc IPX. (Para los curiosos, XFree86-3.1 bajo LiNUX, se ejecuta a alrededor de 171,000 xstones; el Sparc IPX a alrededor de 24,000). En general, XFree86 en un sistema LiNUX con tarjeta aceleradora le proporcionará muchas más prestaciones que las encontradas en estaciones de trabajo UNIX comerciales (que generalmente utilizan simples framebuffers
N. del T. Genéricamente, dispositivo físico capaz de almacenar información sobre una imagen en memoria.para los gráficos)
Su máquina precisará al menos 4 megabytes de RAM física, y 16 megabytes de RAM virtual global. (por ejemplo, 8 megas de física y 8 megas de swap
N. del T. Mecanismo por el cual se pasan a disco páginas de memoria RAM cuando ésta se agota. En adelante, me referiré a este sistema como paginación también.). Recuérdese que cuanta más RAM física se tenga, menos paginará el sistema al y desde el disco cuando la memoria esté baja. Debido a que la paginación es inherentemente lenta (los discos son muy lentos comparados con la memoria), el tener 8 megabytes o más de RAM es lo necesario para hacer funcionar XFree86 confortablemente. Un sistema con 4 megabytes
N. del T. Para aquellos que no puedan disponer de más, o por razones de espacio en el HD, decir a título informativo que existe el paquete Tiny-X para estos casos.de RAM física podría funcionar mucho más lento (hasta 10 veces) que uno con 8 o más megas.
La distribución binaria de XFree86 puede encontrarse en varios
servidores de FTP. En sunsite.unc.edu
, se encuentra en
/pub/Linux/X11
. ( En el momento de escribir esto, la versión
actual es la 3.1.1; se distribuyen nuevas versiones periódicamente).
Es muy probable que se haya obtenido XFree86 como parte de una distribución LiNUX, en cuyo caso el obtener el software por separado no es necesario.
Si se obtiene XFree86 por FTP directamente, la siguiente relación enumera los archivos de la distribución XFree86-3.1.
Se requiere uno de los siguientes servidores:
Servidor para tarjetas basadas en 8514.
Servidor para tarjetas basadas en AGX.
Servidor para tarjetas basadas en Mach32.
Servidor para tarjetas basadas en Mach8.
Servidor para modos de vídeo monocromos.
Servidor para tarjetas basadas en P9000.
Servidor para tarjetas basadas en S3.
Servidor para tarjetas basadas en Super VGA.
Servidor para tarjetas basadas en VGA/EGA.
Servidor para tarjetas basadas en ET4000/W32.
Son necesarios todos los siguientes archivos:
El resto de los binarios de X11R6.
Archivos de configuración xdm
, xinit
y fs
.
Documentación y páginas man.
Archivos include.
Librerías X compartidas y ficheros de soporte.
Fuentes (tipográficas) básicas.
Son opcionales los siguientes archivos:
Programas de contribución seleccionados.
Servidores XFree86 extra y binarios.
Kit de enlace de Servidores para personalizaciones.
Fuentes de pantalla de 75-dpi.
Fuentes de pantalla de 100-dpi.
Fuentes grandes Kanji y otras.
Fuentes escalables (Speedo, Tipo1).
Páginas de manual.
Binarios PEX, archivos include y librerías.
Librerías estáticas X y archivos de soporte.
Demonios
N. del T. Para los que vienen del dos, son análogos a los TSRs.que residen en
/usr/bin
.
Versión de ``Shadow password'' de xdm.
El directorio XFree86 debe contener archivos README
y notas de la
instalación para la versión actual.
Todo lo necesario para instalar XFree86 es hacerse con los anteriores
ficheros, crear el directorio /usr/X11R6
(como root
),
y descomprimir los archivos de /usr/X11R6
con un comando como:
gzip -dc XF86-3.1.1-bin.tar.gz | tar xfB -
Recuérdese que estos archivos tar son empaquetados en relación con /usr/X11R6
.
Por tanto, es importante desempaquetar los archivos ahí.
Tras desempaquetar los archivos, lo primero que se necesita es enlazar
el archivo /usr/X11R6/bin/X
al servidor que se esté usando. Por ejemplo,
si se desea usar el servidor color SVGA, se debe enlazar
/usr/bin/X11/X
con /usr/X11R6/bin/XF86_SVGA
. Si en lugar
de este se desea emplear el servidor monocromo, reenlazar este archivo con
XF86_MONO
mediante el comando
ln -sf /usr/X11R6/bin/XF86_MONO /usr/X11R6/bin/X
Lo mismo continúa siendo cierto si se emplea alguno de los demás servidores.
Si no se está seguro de cuál servidor usar, o no se conoce el chipset de
la tarjeta, se puede ejecutar el programa SuperProbe
, que se encuentra
en /usr/X11R6/bin
(está incluido en el paquete XF86-3.1-bin
listado anteriormente).
Este programa intentará determinar el tipo de chipset y otra información;
anotar sus resultados para posteriores referencias.
Es preciso asegurarse de que /usr/X11R6/bin
esté en el path.
Esto puede conseguirse editando el fichero por defecto de su sistema /etc/profile
o /etc/csh.login
(basado en el shell o intérprete de comandos que
Vd. u otros usuarios del sistema utilicen.) O se puede simplemente añadir el
directorio al path personal modificando /etc/.bashrc
o /etc/.cshrc
,
dependiendo del shell empleado.
También es preciso asegurarse de que /usr/X11R6/lib
pueda ser localizado
por ld.so
, el runtime linker
N. del T. ¿Alguna sugerencia para traducir este término? ¿enlazador dinámico de librerías (o es muy ``liberal'' esta traducción)?.. Para hacer esto, añadir la línea
/usr/X11R6/lib
al fichero /etc/ld.so.conf
, y ejecutar /sbin/ldconfig
, como
root
.
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:
/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. README
aparte,
sitos en el directorio mencionado antes (como README.Cirrus
y
README.S3
).
Leánse si son aplicables a su caso.XFree86
.XF86Config
.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
./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.
Ahora su archivo XF86Config
está listo para funcionar, con la
excepción de la información completa sobre la tarjeta de vídeo. Lo que vamos
a hacer es emplear el servidor X para comprobar el resto de la información,
introduciéndola posteriormente en XF86Config
.
En lugar de tantear esta información usando el servidor X, los valores
XF86Config
para muchas tarjetas están listados en los ficheros
modeDB.txt
, AccelCards
, and Devices
. Estos archivos
se encuentran todos en /usr/X11R6/lib/X11/doc
. Además, hay varios
archivos README
N. del T. Léame.para determinados chipsets. Se debe buscar en esos ficheros información sobre su tarjeta de vídeo, y emplearla (los valores de frecuencias de reloj, tipo de chipset, y las posibles opciones) en el archivo
XF86Config
. Si no
hay ningún tipo de información, se puede tantear como se describe aquí.
En estos ejemplos mostraremos la configuración para una tarjeta de vídeo
#9 GXE 64, que emplea el chipset XF86_S3
.
Se da la circunstancia de que esta tarjeta es la que emplea el autor, pero
lo discutido aquí es aplicable a cualquier tarjeta.
Lo primero a hacer es determinar el tipo de chipset de vídeo empleado en
la tarjeta. Si ejecuta SuperProbe
(que reside en /usr/X11R6/bin
)
le informará acerca de esto, pero se necesita conocer el nombre del chipset
de vídeo como lo conoce el servidor X.
Para hacer esto, ejecute el comando
X -showconfig
Esto le proporcionará los nombres de chipset conocidos por su servidor X. (Las
páginas man
los enumeran también). Por ejemplo, para el servidor acelerador
XF86_S3
, obtenemos:
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
Los nombres válidos de chipset para este servidor son mmio_928
y
s3_generic
. La página man
del servidor XF86_S3
describe estos chipsets y qué tarjetas los emplean. En el caso de la tarjeta
de vídeo #9 GXE 64, el apropiado es mmio_928
.
Si no se sabe qué chipset usar, el servidor X puede comprobarlo por tí. Para hacer esto, ejecutar el comando
X -probeonly > /tmp/x.out 2>&1
si se emplea bash
como intérprete de comandos. Si se emplea csh
,
probar:
X -probeonly &> /tmp/x.out
Este comando debe ser ejecutado cuando el sistema no esté bajo carga, es decir, mientras no tenga lugar ninguna otra actividad en el sistema. Este comando intentará calcular las frecuencias de reloj de su tarjeta (como vimos antes), y la carga del sistema puede estropear los cálculos.
El resultado de lo anterior (en /tmp/x.out
) debe contener líneas
como las que siguen:
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
...
(--) S3: card type: 386/486 localbus
(--) S3: chipset: 864 rev. 0
(--) S3: chipset driver: mmio_928
Aquí observamos que los dos chipsets válidos para este servidor (en este caso,
XF86_S3
) son mmio_928
y s3_generic
. El servidor
tras tantear encontró una tarjeta de vídeo empleando el chipset mmio_928
.
Añadir en la sección Device
del archivo XF86Config
una
línea Chipset
, que contenga el nombre del chipset determinado
anteriormente. Por ejemplo,
Section "Device"
# Aqui ya teniamos definido el identificador...
Identifier "#9 GXE 64"
# adicion de esta linea:
Chipset "mmio_928"
EndSection
Ahora necesitamos determinar las frecuencias de funcionamiento de reloj empleadas por la tarjeta de vídeo. La frecuencia de funcionamiento de reloj, o dot clock es simplemente la velocidad a la que la tarjeta de vídeo puede enviar puntos de imagen o pixels al monitor. Como hemos visto, cada resolución de monitor tiene un dot clock asociado a él. Ahora necesitamos determinar cúales frecuencias de reloj son utilizables por la tarjeta de vídeo.
Primero debe de mirar en los archivos (modeDB.txt
, y demás)
mencionados anteriormente, y ver si las frecuencias de reloj de su tarjeta
se enumeran allí.
Los dot clocks serán normalmente listados de 8 ó 16 valores, todos los
cuales están en MHz. Por ejemplo, si miramos en modeDB.txt
podemos observar una entrada para la tarjeta de vídeo Cardinal ET4000, que
tiene este aspecto:
# chip ram virtual clocks default-mode flags
ET4000 1024 1024 768 25 28 38 36 40 45 32 0 "1024x768"
Como podemos observar, las frecuencias de barrido para esta tarjeta son 25,
28, 38, 36, 40, 45, 32, y 0 MHz.
En la sección Devices
del fichero XF86Config
, se debe
añadir una línea Clocks
que contenga el listado de dot clocks
para su tarjeta.
Por ejemplo, para los clocks anteriores, añadiríamos la línea
Clocks 25 28 38 36 40 45 32 0
A la sección Devices
del fichero, tras Chipset
.
¡Téngase en cuenta que el orden de los valores es importante! no desordene
el listado o borre los duplicados.
Si no se pueden encontrar las frecuencias de barrido asociadas a su tarjeta,
el servidor X puede también tantearlas. Empleando el comando X -probeonly
descrito anteriormente, el resultado contendría líneas con el siguiente
aspecto:
(--) S3: clocks: 25.18 28.32 38.02 36.15 40.33 45.32 32.00 00.00
Podemos entonces añadir una línea Clocks
que contenga todos esos
valores, tal y como los obtenemos. Se puede usar más de una línea Clocks
en XF86Config
en el caso de que todos los valores no cupiesen en una.
Nuevamente, es preciso asegurarse de que se introducen en el mismo orden en
que son proporcionados.
Asegúrese de que no hay una línea Clocks
(o de que esté descomentada)
en la sección Devices
del fichero al usar X -probeonly
para
tantear las frecuencias. Si hubiese una línea Clocks
presente, el
servidor no tantearía esos valores, emplearía los valores presentes en XF86Config
.
Téngase en cuenta que algunas tarjetas aceleradoras emplean chips de frecuencias
programables. (ver la página man
de XF86_Accel
para más detalles;
esto generalmente es aplicable a tarjetas S3, AGX y XGA-2.)
Este chip permite, esencialmente, al servidor X, comunicar a la tarjeta qué
dot clocks usar. Si este es el caso, puede que no se pueda encontrar el
listado de los dot clocks para la tarjeta en ninguno de los ficheros
anteriores. O la lista de las frecuencias de reloj obtenida al usar X -probeonly
puede sólo contener uno o dos valores concretos, siendo el resto duplicados
o cero.
Para tarjetas que empleen un chip programable, se debe emplear un línea
ClockChip
, en lugar de Clocks
en el fichero XF86Config
.
ClockChip
proporciona el nombre del chip que emplea la tarjeta
de vídeo; las páginas man
de cada servidor describen cuáles son. Por
ejemplo, en el fichero README.S3
, podemos ver que varias tarjetas
S3-864 emplean un chip ``ICD2061A'', y que debemos emplear la línea
ClockChip "icd2061a"
en lugar de Clocks
en el archivo XF86Config
. Como con
Clocks
, esta línea deberá estar en la sección Devices
, tras
Chipset
.
Análogamente, algunas tarjetas aceleradoras precisan que se especifique el
tipo de chip RAMDAC en el fichero XF86Config
, empleando una línea
Ramdac
.
La página man
de XF86_Accel
describe esta opción. Normalmente, el servidor X averiguará correctamente el RAMDAC.
Algunas tarjetas de vídeo requieren que se especifiquen ciertas opciones
en la sección Devices
de XF86Config
. Estas opciones serán
descritas en la página man
de su servidor, así como en otros ficheros
(como README.cirrus
o README.S3
. Estas opciones son activadas
empleando la línea Option
. Por ejemplo, la tarjeta #9 GXE 64
necesita dos opciones:
Option "number_nine"
Option "dac_8_bit"
Generalmente, el servidor X funcionará sin estas opciones, pero son necesarias
para conseguir prestaciones óptimas. Hay demasiadas opciones para describirlas
aquí, y cada una depende de la tarjeta de vídeo empleada en particular. Si
debe usar alguna de estas opciones, ---me temo que no--- las páginas man
del servidor X y algunos ficheros en /usr/X11R6/lib/X11/doc
especificarán cuáles son.
Así que cuando se haya terminado, se acabará con una sección Devices
que tendrá este aspecto:
Section "Device"
# Esta seccion device es para esta #9 GXE 64 solo!
Identifier "#9 GXE 64"
Chipset "mmio_928"
ClockChip "icd2061a"
Option "number_nine"
Option "dac_8_bit"
EndSection
La mayoría de las tarjetas de vídeo precisarán una línea Clocks
,
en lugar de ClockChip
, como se describió anteriormente. La anterior
sección Device
es únicamente válida para una tarjeta de vídeo en
particular, la #9 GXE 64.
Hay otras opciones que pueden ser incluidas en la sección Devices
.
Comprobar las páginas man
del servidor para los detalles más escurridizos,
aunque lo anterior debe de bastar para la mayoría de los sistemas.
Con el fichero XF86Config
configurado, se está preparado para arrancar
el servidor X y dar un garbeo. Lo primero, asegurarse de que /usr/X11R6/bin
está en el path.
El comando para arrancar XFree86 es
startx
Este es una ``cubierta'' de xinit
(en caso de que se estuviese
acostumbrado a emplear xinit
en otros sistemas UNIX).
Este comando arrancará el servidor X y ejecutará los comandos que se
encuentran en el fichero .xinitrc
N. del T. Para los usuarios de RedHat, .Xclients
.
. en su directorio home .xinitrc
es simplemente un script que contiene clientes X a ejecutar. Si este
fichero no existe, se empleará por defecto /usr/X11R6/lib/X11/xinit/xinitrc
.
Un fichero .xinitrc
convencional tiene este aspecto:
#!/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
, un oclock
, y
configura el color de la ventana raíz (el fondo) a midnightblue
.
Arrancará entonces twm
, el gestor de ventanas. Téngase en cuenta que
twm
, se ejecuta con el mandato del intérprete de comandos exec
; esto hace que el proceso xinit
sea reemplazado por twm
.
Una vez que el proceso twm
finalice, se cerrará el servidor X. Se puede
hacer finalizar twm
empleando los menús principales: presionando
el botón 1 del ratón sobre el fondo del escritorio, se abrirá un menú emergente
que permitirá Exit Twm
.
Es preciso asegurarse de que el último comando de .xinitrc
se arranca
con exec
, y que no se coloca en modo de ejecución background o
segundo plano (sin un ``&'' al final de la línea). De no ser así, el
servidor X moriría tan pronto como se arrancasen los clientes del fichero .xinitrc
Alternativamente, se puede salir de X presionando la combinación ctrl-alt-backspace
.
Esto mataría al servidor X directamente, saliendo del sistema de ventanas.
Lo anterior es una muy muy simple configuración del escritorio. Multitud de
maravillosos programas y configuraciones estarán disponibles con trabajar un
poco el fichero .xinitrc
.
Por ejemplo, el gestor de ventanas fvwm
proporciona escritorio
virtual, pudiendo personalizarse colores, fuentes, tamaño y posiciones de
ventanas, y así según le plazca a uno. A pesar de que el Sistema X Window
pueda parecer un tanto simplista en un principio, es extremadamente potente,
ya que puede ser personalizado para uno mismo.
Si es la primera vez que se encuentra con el entorno X Window, le recomendamos
encarecidamente hacerse con un libro como The X Window System: A User's Guide.
El empleo y configuración de X es demasiado profundo para tratarlo aquí. Ver
las páginas man
de xterm
, oclock
, y twm
para
hacerse con pistas para ponerse al día.
A veces, algo no irá del todo bien cuando se arranque el servidor X.
Esto suele estar causado casi siempre por un problema en el archivo XF86Config
.
Generalmente, los valores de frecuencia del monitor no están, o las frecuencias
dot clock de la tarjeta de vídeo están definidos de forma incorrecta.
Si la pantalla parece fluctuar, o los bordes están deformados, es una clara
indicación de que los valores de frecuencia o dot clocks del monitor son
erróneos. Asegúrese también de que de que se esté especificando correctamente
el chipset de su tarjeta de vídeo, así como otras opciones de la sección
Device
del fichero XF86Config
. Hay que estar absolutamente
seguro de que se emplea el servidor X correcto y de que /usr/X11R6/bin/X
es un enlace simbólico a este servidor.
Si todo lo demás falla, trate de arrancar X ``a pelo''; es decir emplee un comando como:
X > /tmp/x.out 2>&1
Se puede entonces matar el servidor X (empleando la combinación de teclas
ctrl-alt-backspace
) y examinar el contenido de /tmp/x.out
.
El servidor X informará de todas las advertencias o errores ---por ejemplo,
si la tarjeta de vídeo no tiene un dot clock que se corresponda con un
modo soportado por el monitor.
El fichero VideoModes.doc
incluido en la distribución XFree86 contiene
muchas sugerencias de cómo manipular los valores de su fichero XF86Config
.
Recuerde que puede emplear ctrl-alt-numerico +
y ctrl-alt-numerico -
para ir conmutando entre los modos de vídeo listados en la línea Modes
de la sección Screen
de XF86Config
. Si el modo de mayor
resolución a no parece correcto, trate de cambiar a resoluciones menores. Esto
le permitirá saber, por lo menos, que esas partes de su configuración de X
están funcionando correctamente.
Compruebe también los controles de posición y tamaño horizontal y vertical de su monitor. En muchos casos, es necesario ajustarlos cuando se arranca X. Por ejemplo, si la pantalla parece estar movida ligeramente
N. del T. Ligeramente es eso, ligeramente.a un lado, normalmente se puede corregir esto usando los controles del monitor.
El newsgroup de USENET comp.windows.x.i386unix
está dedicado
a discusiones sobre XFree86, así como comp.os.linux.x
.
Sería una buena idea observar ese newsgroup para enviar consultas relativas
a su configuración de vídeo ---puede que se encuentre con alguien con los mismos
problemas que uno tiene.---
Este documento es Copyright (c)1995 de Matt Welsh. Este trabajo puede ser reproducido en su totalidad o en parte, tanto de forma impresa como electrónica, sujeto a las siguientes condiciones:
Pueden otorgarse excepciones a estas normas para propósitos académicos; escríbase al autor del trabajo, y pregúntesele. Estas restricciones están para proteger a los autores, no para restringiros como educadores o alumnos.
Este documento ha sido traducido por Francisco José Montilla, pacopepe@nova.es
, FidoNet 2:345/402.22
fundador-coordinador-componente del INSFLUG (Impatient & Novatous Spanish Fidonet LiNUX Users Group) uno de los varios grupos de usuarios existentes en España,
y más concretamente en la mejor ;-) área de FidoNet: R34.LINUX
junto con LuCas y otros.
La presente traducción se encuentra amparada por los mismos derechos expresados en la sección Copyright.
Actualmente están siendo traducidos varios HOWTOs y FAQs, además de las ``guides'' El ``Linux Installation and Getting Started'' ya está traducido, así como el Kernel-HOWTO Term-Howto y varios más; todo lo que se vaya haciendo estará en:
ftp://luna.gui.uva.es/pub/docs-esp/
y en formato HTML, con links a los demás formatos, en la página personal de Juan José Amor, además de BBSs de FidoNet como La Voix, Elektra, etc, que se irán
notificando por R34.LINUX
.
Si quieres colaborar traduciendo, elaborando algún documento en especial, o cualquier otra cosa, no tienes más que ponerte en contacto con cualquiera de los contactos detallados a continuación. Espero que la presente traducción te haya sido útil.
INSFLUG:
Francisco José Montilla, pacopepe@nova.es
, FidoNet 2:345/402.22
LuCas:
Juan José Amor, jjamor@gedeon.ls.fi.upm.es
Alfonso Belloso, alfon@bipv02.bi.ehu.es
La documentación traducida puedes conseguirla de:
http://lml.ls.fi.upm.es/~jjamor/
http://luna.gui.uva.es
FidoNet:
Elektra (95) 4164934/4161749 28k8/14k4
La Voix (95) 4275081/4275321 28k8/14k4
y más sitios de los que tendrás noticia en R34.LINUX
.
................................................................................................. Francisco José Montilla Blanco (PacoPepe)