Instalación y configuración del servidor X en Debian
Última actualización: 12 de febrero, 2011
Tabla de Contenido
- Introducción
- Instalación de X.Org
- Configuración de X
- Sección "Device"
- Sección "Monitor"
- Sección "Screen"
- Sección "InputDevice"
- Sección "ServerLayout"
- Sección "DRI"
Introducción
X.Org 1 es una
implementación libre del sistema gráfico de ventanas X, que surgió como
una bifurcación de XFree86 después de un cambio de licencia que muchos,
incluyendo Debian, consideraron incompatible con la Licencia Pública
General (GPL). X.Org ha sido adoptada por la mayoría de las
distribuciones GNU de Linux.
A partir de Lenny, X.Org hace una configuración automática de
dispositivo, monitor y periferias. En la mayoría de los casos no es
necesario configurar nada; basta con instalar un paquete Debian.
Instalación de X.Org
Ingresa a root.
Instala el paquete xorg con,
# apt-get install xorg
Este es un meta paquete que, usando el sistema de dependencias, instala
un conjunto de paquetes X11, como el servidor X.Org, dispositivos de
vídeo y periferias, un conjunto de tipos de letras y herramientas
básicas.
Para usar el servidor es necesario instalar un entorno de escritorio. Existen varios, los más usados siendo
GNOME y KDE.
Una vez instalado el escritorio, inicia el servidor X con,
# /etc/init.d/gdm start
Configuración de X
Sucede que X.Org no es capaz de detectar automáticamente todo el
hardware. A continuación explicaremos paso a paso la configuración de
X.Org, en caso el servidor X no levante correctamente.
El archivo,
/var/log/Xorg.0.log
contiene un registro y puede ayudar a determinar que es exactamente lo
que falla. Busca en particular la líneas que comienzan con (EE),
lo que indica un error. En este archivo existe registrado todos los
dispositivos cargados automáticamente por X.Org, basándose en la
detección del hardware.
A partir de Squeeze, el archivo de configuración /etc/X11/xorg.conf no
es creado. Para crear uno, detiene el servidor X primero,
# /etc/init.d/gdm stop
luego corre,
# Xorg -configure
Esto crea el archivo xorg.conf.new basándose en la detección del
hardware. Mueve el archivo a /etc/X11 con,
# mv xorg.conf.new /etc/X11/xorg.conf
El archivo, /etc/X11/xorg.conf contiene la configuración de X.Org y
está dividido en secciones:
Files # Ruta de los archivos Module # Módulos dinámicos InputDevice # Descripción de los dispositivos periféricos Device # Descripción de los dispositivos gráficos Monitor # Descripción del Monitor Screen # Configuración de la pantalla ServerLayout # Esquema global DRI # Configuración específica a DRI
Cada sección empieza con la instrucción Section seguido del nombre de
la sección entre comillas y termina con EndSection. Existen comandos
específicos a cada sección. Iremos paso a paso, no necesariamente en el
orden del archivo, describiendo las secciones y explicando el
significado de cada comando, para que modifiques la configuración con
algún editor de texto (por ejemplo nano) con los parámetros
pertinentes al hardware.
Sección "Device"
Esta sección es la que define y configura el dispositivo de la tarjeta
gráfica.
Section "Device" Identifier "Configured Video Device" Driver "sis" BusID "PCI:1:0:0" EndSection
La entrada Identifier es simplemente un nombre para identificar la
sección.
La entrada Driver especifica el dispositivo. Si esta entrada no
existe, X.Org hace una identificación automática. Insertar Driver
fuerza a X.Org a usar el dispositivo especificado.
La entrada BusID identifica la tarjeta gráfica en el bus PCI, que
puedes determinar con lspci (ver más abajo).
Para determinar el chipset de la tarjeta gráfica y el dispositivo
que la soporta, corre en un terminal el comando lspci y busca las
palabras "VGA compatible controller:". La información que sigue
normalmente identifica a lo menos la marca de la tarjeta gráfica y
posiblemente el dispositivo que necesitas. Por ejemplo,
$ lspci 01:03.0 VGA compatible controller: ATI Technologies Inc ES1000 (rev 02)
En la mayoría de los casos la marca identifica el dispositivo.
La siguiente tabla muestra los dispositivos libre de X.Org,
Marca tarjeta | dispositivo |
---|---|
3Dfx | tdfx |
Alliance ProMotion | apm |
AMD GPG (ATI) R5xx/R6xx | radeonhd |
ATI | ati |
ATI Rage 128 | r128 |
ATI RADEON | radeon |
Chips and Technologies | chips |
Cirrus Logic | cirrus |
Cyrix MediaGX | cyrix |
3Dlabs & Texas Instruments GLINT/Permedia | glint |
Number 9 I128 | i128 |
Intel i740 | i740 |
Intel | intel |
Integrated Micro Solutions Twin Turbo 128 | imstt |
Matrox | mga |
Neomagic | neomagic |
National Semiconductors | nsc |
NVIDIA | nv |
Rendition | rendition |
S3 Savage | savage |
S3 ViRGE | s3virge |
Silicon Motion | siliconmotion |
SiS | sis |
SiS USB | sisusb |
Trident | trident |
Tseng Labs | tseng |
Voodoo | voodoo |
Unichrome (VIA) | openchrome |
XGI | sis |
Existen otros dispositivos que no son libres, por ejemplo, el
dispositivo de
nVidia 2
y
ATI fglrx 3.
Si este método no resulta, la primera columna del comando lspci arroja
los números del bus PCI al cual la tarjeta está conectada, con el
formato <bus>:<slot>:<func>.
Corre,
$ lspci -n -s bb:ss.f
e identifica con los números del bus PCI el vendor y device ID de la
tarjeta. Por ejemplo,
$ lspci 01:03.0 VGA compatible controller: ATI Technologies Inc ES1000 (rev 02) $ lspci -n -s 01:03.0 01:03.0 0300: 1002:515e (rev 02)
El vendor y device ID tiene el formato vvvv:dddd en números
hexadecimales, En éste caso el vendor y device ID de la tarjeta es
1002:515e. Con esta información busca en la
lista de tarjetas gráficas 4
el dispositivo que necesitas usar. En este caso el dispositivo es
radeon.
Sección "Monitor"
Esta sección define el monitor.
Section "Monitor" Identifier "Configured Monitor" HorizSync 28-100 VertRefresh 40-100 EndSection
La entrada Identifier es similar a la de la sección "Device". Pueden
existir varias secciones "Monitor" en el archivo, cada una con
diferente identificación. Esto es conveniente si, por ejemplo, tienes
varios monitores, digamos uno en tu casa y otro en tu lugar de trabajo.
Así puedes fácilmente definir una configuración para cuando el
computador está en casa o en tu trabajo. Cómo esto funciona en la
práctica quedará claro más adelante.
La entrada HorizSync especifica la frecuencia de barrido horizontal
del monitor en unidades de kHz. Puede ser una frecuencia fija,
[31.5], múltiples frecuencias fijas, [31.5,35.2], un rango,
[30-64], o rangos, [15-25,30-64]. La entrada VertRefresh
especifica los intervalos verticales de refresco en unidades de Hz y los
valores tienen el mismo formato de HorizSync. Los valores o rangos
suelen encontrarse en la sección especificaciones del manual del
monitor. Estos datos son muy importantes y valores erróneos pueden
causar un mal funcionamiento y hasta daños al monitor.
Sección "Screen"
Esta sección es la que va definir la pantalla, combinando la
configuración del dispositivo y monitor.
Section "Screen" Identifier "Default Screen" Device "Configured Video Device" Monitor "Configured Monitor" DefaultDepth 24 Subsection "Display" Depth 1 Modes "1024x768" "800x600" "640x480" EndSubsection Subsection "Display" Depth 4 Modes "1024x768" "800x600" "640x480" EndSubsection Subsection "Display" Depth 8 Modes "1024x768" "800x600" "640x480" EndSubsection Subsection "Display" Depth 15 Modes "1024x768" "800x600" "640x480" EndSubsection Subsection "Display" Depth 16 Modes "1024x768" "800x600" EndSubsection Subsection "Display" Depth 24 Modes "1024x768" EndSubsection EndSection
Nota que las entradas Device y Monitor tienen el mismo valor que la
entrada Identifier de las secciones "Device" y "Monitor". De esta
manera se entrelazan las configuraciones de las diferentes secciones.
La entrada DefaultDepth especifica la profundidad de color por
omisión, en este ejemplo, 24 bits. Pueden haber varias subsecciones
"Display". La entrada Depth especifica la profundidad de color de la
subsección. Valores posibles son 8 (256 colores), 16 (64K colores) y 24
bits. Así, la entrada DefaultDepth va a especificar la subsección
"Display" por omisión.
La entrada Modes especifica las resoluciones. Puede especificarse una
resolución ["640x480"] o un listado de ellas
["1600x1200" "1680x1050" "1280x1024" "1440x900" "1280x960" "1152x864" "1024x768" "800x600" "640x480"].
Normalmente se usa la primera en la lista, si está soportada, si no, la
siguiente, y así.
En general, mientras mayor la profundidad de color, menor la resolución
máxima posible. Disminuye la profundidad de color si para cierta
resolución soportada la imagen de la pantalla es mala, o mantiene la
profundidad disminuyendo la resolución.
Sección "InputDevice"
Esta es la sección que configura las periferias como el teclado, ratón,
mousepad, touchscreen, etc. Los más comunes son el teclado y el ratón,
obviamente, cada una por separado.
Configuración del teclado:
Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "latam" EndSection
Todos los teclados tienen un dispositivo en común llamado kbd. La
entrada Option "CoreKeyboard" indica que el teclado definido por la
sección es el teclado principal. La entrada Option "XkbModel" especifica el
tipo de teclado. Los valores más comunes son "pc101", "pc102",
"pc104", "pc105" o "microsoft" para el teclado Microsoft Natural.
La entrada Option "XkbLayout" define el mapa del teclado; latam para
teclado latinoamericano; "es" para un teclado español, "us" para un
teclado inglés norteamericano.
Configuración del ratón:
Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/input/mice" Option "Protocol" "ImPS/2" Option "Emulate3Buttons" "true" Option "Buttons" "5" Option "ZAxisMapping" "4 5" EndSection
El dispositivo común mouse soporta cuatro tipos de ratones: serial,
Bus, PS/2 y USB. En el primer ejemplo se configura un ratón USB
IntelliMouse (con rueda).
La entrada Option "CorePointer" indica que el ratón definido por la
sección es el ratón principal.
La entrada Option "Device" especifica el dispositivo de la unidad del
ratón. Ejemplos son /dev/ttyS0 (serial), /dev/psaux (PS/2) y
/dev/input/mice (USB).
La entrada Option "Protocol" define el tipo de ratón. Otros protocolos
son:
"Auto" "MouseMan" "Mousesystems" "IntelliMouse" "ExplorerPS/2" "ThinkingMouse" "ThinkingMousePS/2" "NetScrollPS/2" "NetMousePS/2" "GlidePoint" "GlidePointPS/2" "MouseManPlusPS/2"
Los ratones seriales antiguos de dos o tres botones están normalmente
soportados por el protocolo "Microsoft" o "MouseMan". Los ratones
seriales con rueda los soporta el protocolo "IntelliMouse" y los PS/2
"ImPS/2". El protocolo "Auto" a veces ayuda si es que el hardware es
capaz de detectar automáticamente el ratón.
La entrada Option "Emulate3Buttons" emula al botón del medio
oprimiendo simultáneamente los botones izquierdo y derecho. Puede usarse
también en ratones con tres botones.
Sección "ServerLayout"
Esta sección es la que junta la pantalla con la unidades periféricas.
Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" InputDevice "Generic Keyboard" InputDevice "Configured Mouse" EndSection
Nota en particular cómo ésta sección combina todo mediante las
identificaciones de cada sección definidas por Identifier.
Sección "DRI"
Algunas tarjetas modernas incorporan Direct Rendering Infrastructure
(DRI). Para usarlo debes cargar los módulos "glx" y "dri" en la
sección "Modules".
La sección DRI por omisión es,
Section "DRI" Mode 0666 EndSection
Algunas tarjetas que no soportan DRI pueden colgar X.
Para hacer efectivo cambios a /etc/X11/xorg.conf debes reiniciar el
Display Manager con,
# /etc/init.d/gdm restart