X.Org es el mas popular sistema servidor de ventanas, es una implementación libre del sistema gráfico X, que surgió como una separación de XFree86 después de un cambio de licencia que muchos, incluyendo Debian, consideraron incompatible con la GPL. X.Org a la fecha ha sido adoptada por la mayoría de las distribuciones GNU/Linux.
A partir de Debian Lenny, X.Org hace una configuración automática de dispositivo, monitor y periféricos. En la mayoría de los casos no es necesario configurar nada; basta con solo instalar un paquete Debian.
Nota 2018: A partir de Ubuntu 18.04 regresamos a usar Xorg por defecto, ya que hasta la fecha era una de las pocas distros que no lo usaba de forma predeterminada, buena noticia 😉
Tabla de contenido
Instalación de X.Org
Instala el paquete xorg con:
sudo 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 perifericos, 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 siguen siendo GNOME y KDE.
Una vez instalado el escritorio, inicia el servidor X con:
sudo /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, deten el servidor X primero,
sudo /etc/init.d/gdm stop
luego corre,
sudo Xorg -configure
Esto crea el archivo xorg.conf.new basándose en la detección del hardware. Mueve el archivo a /etc/X11 con,
sudo 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 |
En esta lista vemos 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>. Escribe:
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 Linea 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 Linea HorizSync nos dice la frecuencia de barrido horizontal en khz del monitor. 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 Linea VertRefresh especifica los intervalos verticales de refresco en 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 «1024×768» «800×600» «640×480»
EndSubsection
Subsection «Display»
Depth 4
Modes «1024×768» «800×600» «640×480»
EndSubsection
Subsection «Display»
Depth 8
Modes «1024×768» «800×600» «640×480»
EndSubsection
Subsection «Display»
Depth 15
Modes «1024×768» «800×600» «640×480»
EndSubsection
Subsection «Display»
Depth 16
Modes «1024×768» «800×600»
EndSubsection
Subsection «Display»
Depth 24
Modes «1024×768»
EndSubsection
EndSection
Detalla que las lineas Device y Monitor tienen igual valor que la entrada Identifier de las secciones «Device» y «Monitor». De esta manera se cruzan las configuraciones de las diferentes secciones.
La Linea 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 Linea Modes especifica las resoluciones. Puede especificarse una resolución [«640×480»] o un listado de ellas [«1600×1200» «1680×1050» «1280×1024» «1440×900» «1280×960» «1152×864» «1024×768» «800×600» «640×480»]. 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 Linea Option «CorePointer» indica que el ratón definido por la sección es el ratón principal.
La Linea Option «Device» especifica el dispositivo de la unidad del ratón. Por ejemplo: /dev/input/mice (USB) o /dev/psaux (PS/2)
La Linea 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 antiguos ratones por puerto serial de dos o tres botones están normalmente soportados por el protocolo «Microsoft». Los ratones seriales con rueda los soporta el protocolo «IntelliMouse» y los PS/2 por el protocolo «ImPS/2». El protocolo «Auto» a veces ayuda si es que el hardware es capaz de detectar automáticamente el ratón.
La Linea 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 recargar la configuración, debes reiniciar el Display Manager usando:
sudo /etc/init.d/gdm restart
Algunas fuentes y mas información en:
http://wiki.archlinux.org/index.php/Xorg_%28Espa%C3%B1ol%29
Configurar Xorg en Debian:
http://usuariodebian.blogspot.com/2008/07/configuracion-manual-del-servidor-xorg.html
Espero te sea de ayuda. Puedes ver mas información aquí.