mdw@sunsite.unc.edu
pacopepe@insflug.org
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
.
Debe de asegurarse de que /usr/X11R6/bin/X
es un enlace simbólico
al servidor que se esté empleando.
La línea Device
especifica la secuencia Identifier
de la
sección Device
correspondiente a la tarjeta de vídeo a emplear
para dicho servidor. Anteriormente, creamos una sección Device
con la línea
Identifier "#9 GXE 64"
Por tanto, empleamos "#9 GXE 64"
en la línea
Device
aquí.
Análogamente, la línea Monitor
especifica el nombre de la sección
Monitor
a usarse con este servidor. Aquí, "CTX 5468
NI"
es el Identifier
empleado para la sección
Monitor
descrita anteriormente.
Subsection "Display"
define varias propiedades del
servidor XFree86 correspondientes a su combinación de monitor/tarjeta de
vídeo. El archivo XF86Config
describe todas estas opciones en
detalle; la mayoría de ellas son para ``poner la guinda'' al pastel y no
son necesarias para hacer funcionar el sistema.
Las opciones que debe conocer son:
Depth
. Define el número de planos de color ---el número de
bits por pixel---. Normalmente, Depth
está configurado a 8. Para
el servidor VGA16
, se debe usar una profundidad (de color) de 4,
y para el servidor monocromo una profundidad de 1. Si se está empleando
una tarjeta aceleradora con suficiente memoria para soportar más bits por
pixel, se puede definir Depth
Profundidad.a 16, 24, o 32. Si se experimentan problemas con profundidades de color superiores a 8, configúrelo para 8 nuevamente e intente solucionar el problema más adelante.
Modes
. Esta es la lista de nombres de modos de vídeo que
han sido definidos empleando la etiqueta ModeLine
de la sección
Monitor
.
En la anterior sección empleamos a ModeLines
con el nombre
"1024x768"
, "800x600"
, y
"640x480"
. Por tanto, usaremos una línea
Modes
tal como
Modes "1024x768" "800x600" "640x480"
El primer modo que aparece en esta línea será el adoptado por defecto al
arrancar XFree86. Una vez se esté ejecutando XFree86, se puede cambiar
entre los modos que aparezcan aquí empleando las teclas
ctrl-alt-numerico +
y ctrl-alt-numerico -
.
Lo mejor sería emplear modos de baja resolución al configurar inicialmente
XFree86, como 640x480, que tenderán a funcionar en la mayoría de los
sistemas. Una vez se tenga la configuración básica funcionando, se puede
modificar XF86Config
para proporcionar mayores resoluciones.
Virtual
. Establece el tamaño de escritorio virtual. XFree86
posee la capacidad de emplear la memoria adicional disponible en su
tarjeta para aumentar el tamaño de su escritorio. Cuando mueva el puntero
del ratón al borde de la pantalla, el escritorio se desplazará,
visualizando el espacio adicional. Por tanto, incluso si se emplean los
modos de menor resolución como 800x600, se puede definir Virtual
a la resolución total que pueda proporcionar su tarjeta (una tarjeta de
vídeo de 1 megabyte puede soportar 1024x768 con una profundidad de 8 bits
por pixel; una tarjeta de 2 megabytes 1280x1024 con una profundidad de 8,
o 1024x768 a una profundidad de 16)
N. del T. Recuérdese, esto siempre que la tarjeta CUMPLA los estándares VESA, cosa que no todas hacen, como referenciamos antes, especialmente las superbaratas.. Por supuesto, la superficie al completo nunca podrá estar visible al completo, pero sigue pudiendo ser empleada. La capacidad
Virtual
es una forma estupenda de emplear la memoria
de su tarjeta de vídeo, pero es más bien limitada. Si se desea utilizar un
verdadero escritorio virtual, sugerimos emplear fvwm
, o un gestor
de ventanas similar en su lugar. fvwm
permite tener escritorios
virtuales suficientemente grandes (implementado mediante la ocultación de
ventanas y similar, en vez de almacenar el escritorio completo en la
memoria de vídeo de golpe). Ver las páginas man
de fvwm
para
obtener más detalles sobre esto; la mayoría de los sistemas LiNUX emplean
fvwm
por defecto.
ViewPort
. Si se emplea la opción Virtual
descrita
anteriormente, ViewPort
define las coordinadas de la esquina
superior izquierda del escritorio virtual al arrancar XFree86. Lo más
usado es Virtual 0 0
; si no se especifica así, el escritorio se
centra en la pantalla del escritorio virtual (lo cual puede no ser lo
deseado).
Existen muchas opciones para esta sección; ver la página man
de
XF86Config
para una descripción completa. En la práctica no son
necesarias estas opciones para conseguir que XFree86 funcione
inicialmente.
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.
El INSFLUG forma parte del grupo internacional Linux Documentation Project, encargándose de las traducciones al castellano de los Howtos (Comos), así como la producción de documentos originales en aquellos casos en los que no existe análogo en inglés.
En el INSFLUG se orienta preferentemente a la traducción de
documentos breves, como los COMOs y PUFs (Preguntas de
Uso Frecuente, las FAQs. :)
), etc.
Diríjase a la sede del INSFLUG para más información al respecto.
En la sede del INSFLUG encontrará siempre las últimas versiones de
las traducciones:
www.insflug.org
. Asegúrese de comprobar cuál es la última
versión disponible en el Insflug antes de bajar un documento de un
servidor réplica.
Se proporciona también una lista de los servidores réplica (mirror) del Insflug más cercanos a Vd., e información relativa a otros recursos en castellano.
Francisco José Montilla,
pacopepe@insflug.org
.