Instalar y Configurar X11

Conceptos Claves

  • Verificar que la placa de video y el monitor estén soportados por el servidor X
  • Conocimiento del servidor de fuentes X
  • Conocimiento básico del archivo de configuración de X.

Términos y Utilidades

  • /etc/X11/xorg.conf
  • xhost
  • DISPLAY
  • xwininfo
  • xdpyinfo
  • X

Introducción

Todas las computadoras de escritorio poseen alguna forma de interfaz gráfica, que provee las ventanas, menús, cajas de dialogo, fuentes, etc. En Linux, la GUI principal es conocida como el sistema de ventanas X. La configuración de X no suele ser muy difícil; la mayoría de las distribuciones hoy en día proveen detección de hardware y configuración automática.

La pantalla de X puede ser considerada como una forma de salida, tal como lo es la impresión. El servidor X se implementa como un modelo cliente/servidor. Los servidores y los clientes pueden estar localizados en la misma computadora o conectados a través una red. El trabajo computacional se realiza por separado del trabajo de renderizado de pantalla.

Configuración básica de X

La configuración básica de X incluye:

  • Tipo de ratón se está usando.
  • Distribución de teclas del teclado.
  • Resolución de la pantalla.
  • Ratio de refresco del video.
  • Profundidad del color de la imagen.
  • Placa de video que se está utilizando.

Algunas de estas opciones requieren indicarle a X sobre que hardware se encuentra instalado, mientras que otras habilitan a ajustar configuraciones sobre este hardware. De cualquier forma, antes de proceder es necesario saber sobre los diferentes tipos de servidores X disponibles en Linux, ya que la selección determinara que herramientas adicionales están disponibles y que archivos se pueden actualizar manualmente. Hay utilidades que ayudan a configurar, pero, en ocasiones, es necesario trabajar directamente con archivos de configuración, por lo que es importante conocer su formato.

Opciones para el servidor X en Linux

Si bien X es por lejos la GUI dominante en Linux, existen varias implementaciones de X:

  • XFree86: El servidor X dominante hasta el año 2004.
  • X.org-X11: En 2004 varias distribuciones importantes pasaron de Xfree86 a X.Org-X11, debido a algunos cambios en la licencia de XFree86. X.Org-X11, se basa en XFree86, específicamente en su versión 4.3.99, pero se desarrolla independientemente. Si bien son muy similares, difieren en los archivos de configuración y la ubicación de las fuentes.

Métodos para configurar X:

  • Utilidades de configuración: La mayoría de las distribuciones proveen utilidades de configuración que realizan la gran parte o la totalidad de la configuración.
  • El servidor X mismo: El servidor mismo cuenta con la capacidad de consultar el hardware y producir un archivo de configuración. Para hacer esto se puede correr el siguiente comando:

XFree86 -configure

o el comando:

Xorg -configure

Se debe ejecutar como root mientras no haya ningún servidor X corriendo. El resultado debería un archivo llamado /root/X86Config.new o /root/xorg.conf.new, según el servidor X que se este usando.

Ubicación y nombre de los archivos de configuración

X.org-X11: El archivo de configuración para este server es xorg.conf, y suele estar guardado en /etc/X11 o alguna otra locación dentro de /etc. Es posible que este archivo se almacene en algún otro lado o que directamente no exista y el sistema haga un escaneo del hardware cada vez que se enciende.

XFree86: El archivo de configuración se llama XF86Config-4 o XF86Config, y se encuentra en /etc/X11 o también en /etc. El formato del archivo es el mismo que para X.org-X11.

El formato de los archivos de configuración

Todos estos archivos de configuración usan formatos divididos en secciones multi-línea, una sección por cada funcionalidad general. Estas secciones empiezan con la palabra clave Section y el nombre de la sección entre comillas.

Ejemplo

Section “InputDevice”

Identifier “Keyboard0″

Driver “kbd”

Option “Xkbmodel” “pc105″

Option “Xkblayout” “us”

End Section

Secciones de configuración de X

Las secciones de los archivos de configuración de X que regularmente encontraremos son:

  • Module
  • InputDevice
  • Monitor
  • Device
  • Screen
  • ServerLayout

Sección Module

Esta parte controla la carga de módulos, en general son controladores para funcionalidades especificas o piezas de hardware.

Ejemplo

Section “Module”

Load “dbe”

Load “extmod”

Load “freetype”

Load “type1”

Endsection

Los módulos freetype y type1 se ocupan de renderizar las fuentes TrueType y Adobe Type1, respectivamente. Si no entendemos un modulo, no deberíamos preocuparnos, seguramente esta ahí cumpliendo algún función útil.

Sección InputDevice

Las secciones “InputDevice” manejan el mouse y el teclado.

Teclado

Section “Input Device”

Identifier “Keyboard0”

Driver “kbd”

Option “XkbModel” “pc105”

Option “AutoRepeat” “500 200”

Endsection

Las líneas indican los siguiente:

Identifier: Provee un identificador que luego será usado por otra sección (Server Layout). Si bien, el texto a poner es arbitrario, es bueno poner algo descriptivo.

Driver: La línea donde dice driver le indica a X que controlador usar para acceder al dispositivo. Kbd y Keyboard son controladores específicos para teclado, mientras que evdev es un controlador genérico para dispositivos de entrada de datos de distinto tipo.

Option: Las líneas donde dice opción fijan las diferentes opciones que ajustan la funcionalidad del teclado, como ser, modelo, ratio de repetición y distribución de las teclas.

Ratón

Section “Input Device”

Identifier “Mouse0”

Driver “Mouse”

Option “Device” “/dev/input/mice”

Option “Protocol” “IMPS/2”

EndSection

El controlador puede ser mouse o evdev. Las líneas mas importantes son Device y Protocol. Device indica a X que dispositivo de Linux debe leer para acceder al mouse. La opción protocol indica que señal debe esperar cuando se mueve el mouse y se aprietan botones.

Sección Monitor

Uno de los aspectos mas difíciles en la configuración de X es el ajuste de las variables del monitor. Esto se ajusta en la sección “Monitor”. Una versión modesta puede ser la siguiente:

Section “Monitor”

Identifier “Monitor0”

ModelName “”

HorizSync 30.0 – 83.0

VertRefresh 55.0 – 75.0

End Section

HorizSync y VertRefresh definen el rango de refresco horizontal y vertical, respectivamente, que acepta el monitor.

Data Display Channel: Es un protocolo que permite a los monitores comunicar el máximo ratio de refresco horizontal y vertical que soporta un monitor.

Sección Device

El monitor generalmente manda la información a través de la tarjeta de video. La versiones mas modernas de X.org-X11 pueden escoger el controlador de la placa de video de manera automática, seleccionando el mas optimo. En otras ocasiones, se debe proveer la información al archivo de configuración XF86Config o xorg.conf .

En particular, el modulo del controlador se ajusta mediante la línea Driver “valor” dentro de la sección Device.

Driver “nv”

Esta línea indica el nombre del controlador, que generalmente se encuentra en /usr/X11R6/lib/modules/drivers o /usr/lib/xorg/modules/drivers en general los nombres de los drivers terminan en _drv.o .

Si se tipea Xorg –configure para crear una configuración inicial, el archivo probablemente tenga múltiples secciones de Device, cada una para un driver diferente. Algunos de estos, como fdev y vesa, son drivers genéricos que funcionan en una gran variedad de placas de video. Actualmente, se utilizan controladores nv o nouveau para placas nVidia, radeon para placas ATI/AMD y controladores Intel para placas Intel .

Opciones específicas de la placa de video

Section “Device”

Identifier “Videocard0”

Driver “nv”

VendorName “nVidia”

EndSection

Sección Screen

La sección Screen le indica a X sobre la combinación de monitores y placas de video que se están utilizando.

Section “Screen”

Identifier “Screen0″

Device “Videocard0″

Monitor “Monitor0″

DefaultDepth 16

SubSection “Display”

Depth 24

Modes “1280×1024″ “1280×960″ “1152×864″ “1024×768″ “800×600″ “640×480″

EndSubSection

SubSection “Display”

Depth 16

Modes “1152×864″ “1024×768″ “800×600″ “640×480″

EndSubSection

Incluye una o mas subsecciones de Display.

Server Layout

La sección “server layout” vincula todos los otros componentes de la configuración de X.

Section "ServerLayout"

Identifier "Default Layout"

Screen 0 "Screen0" 0 0

InputDevice "Mouse0" "CorePointer"

InputDevice "Keyboard0" "CoreKeyboard"

EndSection

Típicamente esta sección define una sección Screen y dos secciones de “input Device”.

Configurando y testeando X

Si la configuración de X no esta funcionando correctamente, puede que sea necesario modificar esa configuración y probarla. Muchas distribuciones están hechas para iniciar X automáticamente, pero esto puede dificultar las pruebas de la configuración. Una opción para probar es reiniciar el sistema.

Otro enfoque es lanzar el sistema en un modo en que X no se inicie automáticamente. En Red Hat, Fedora y distribuciones similares, esto se consigue ingresando el comando telinit 3. Para lanzar el nivel de ejecución 3.

Otras distribuciones, como Debian, Ubuntu o Gentoo no usan niveles de ejecución como señal para lanzar o no X. Con estas distribuciones, se debe terminar el servicio de login de interfaz grafica, ingresando /etc/init.d/xdm stop . (Es posible que tenga que cambiar xdm por gdm, kdm, mdm or lightdm, dependiendo de la configuración).

Una vez que se termina la sesión de X, se puede ingresar al sistema en modo de texto y cambiar las configuraciones de X manualmente. O se pueden usar programas de configuración basados en X. Se puede tipiar startx para arrancar el servidor nuevamente.

Otra forma de realizar esto es matar el proceso del servidor X:

ps ax | grep X

kill pid n

Fuentes

Detrás de las escenas, hay una cantidad de acciones que se producen cuando una aplicación solicita el uso de una fuente. Debido a que muchas instalaciones por defecto incluyen tanto el servidor X y sus respectivos clientes en la misma máquina, muchas de las funcionalidades está enmascaradas. Sin embargo, el servidor X desempeña un papel fundamental en la gestión de las fuentes que almacenada.

Por lo general hay dos mecanismos diferentes en el trabajo, en cuanto a las fuentes se trata: uno de ellos hace uso de un servidor de fuentes, el otro no.

X.Org pone a disposición de sus clientes las fuentes que encuentre en la rutas definidas dentro del archivo de configuración de X11, xorg.conf. Específicamente utiliza la sección “files” y la directiva FontPath.

X.org-X11 suele almacenar las fuentes dentro de /usr/share/fonts o dentro de /usr/share/X11/fonts. Las fuentes de tipo Type 1 suelen residir tener nombres de archivo que terminan en .pfa y .pfb; las TrueType suelen tener la extensión .ttf .

Instalar fuentes nuevas

Para instalar fuentes nuevas, se debe crear un directorio para almacenar las fuentes, el cual puede ser /usr/share/X11/fonts/local o /usr/local/fonts .Una vez que las fuentes nuevas están en el directorio, el comando mkfontdir y mkfontscale se puede utilizar para catalogar las fuentes nuevas en el directorio nuevo.

mkfontscale

mkfontdir

En una red con múltiples estaciones de trabajo, gestionar las fuentes manualmente para cada sistema, puede consumir una buena cantidad de tiempo. Para simplificar este problema, el administrador puede instalar todas las fuentes que necesite en uno solo sistema y ejecutar xfs, el servidor de fuentes, en ese sistema.

Para acceder a un servidor de fuentes, el cliente debe listar esas fuentes en la ruta de fuentes.

Configuración de fuentes Xft

Las fuentes core tienen desventajas importantes:

  • Es difícil la integración entre lo que se muestra en pantalla y lo que se imprime.
  • No proveen demasiado soporte para técnicas avanzadas de tipografía.
  • No soportan antialiasing.

Debido a todos estos problemas, los desarrolladores decidieron evitar este sistemas de fuentes. Esto desencadeno el sistema de fuentes Xft, el cual esta basado en parte en la librería de fuentes FreeType. La cual es una librería de fuentes de código abierto que se utiliza para renderizar fuentes TrueType y Type 1.

La fuentes Xft se almacenan en el mismo sistema en el cual se esta ejecutando la aplicación.

results matching ""

    No results matching ""