Previous Next Table of Contents

9. X Window

Ahora que todo funciona bien, pasamos a otro gran pedazo : la instalación de X Window. Para poder utilizar X Window, es necesario tener una configuración razonable (al menos 8Mo de memoria). En caso contrario, la maquina será muy lenta: se va a pasar el tiempo en "swapping".

En un primer tiempo, instala con la ayuda de tu distribución el servidor que corresponda mejor a tu carta gráfica.

9.1 XF86Config

El problema con X Window, es configurar el archivo. Se trata del archivo XF86Config. Cuidado: este archivo es fuertemente diferente de la versión antigua de XFree86 2. Se trata aquí de un servidor XFree86 3.2, basado en X11R6. Antes de comenzar a construir tu archivo, lanza el programa SuperProbe. En mi caso, esto me permite obtener las siguientes informaciones. (Si yo se que es una tarjeta video super vieja... pero bueno, hay le damos con lo que tenemos !) :

 
First video: Super-VGA 
          Chipset: Cirrus CL-GD5428 
          Memory:  1024 Kbytes 
          RAMDAC:  Cirrus Logic Built-in 15/16/24-bit DAC 
                   (with 6-bit wide lookup tables (or in 6-bit mode)) 

Ahora, sigue lo mas duro : construir el archivo de configuración. Atención: en ciertas distribuciones, el archivo XF86config esta en el repertorio /etc, lo cual es una buena idea en el caso de una red de estaciones Linux que comparten /usr por NFS. Si utilizas una o varias maquinas independientes, puedes suprimir /etc/XF86config y utilizar /usr/X11R6/lib/X11/XF86Config.

Este archivo se presenta en forma de secciones. He aquí una descripción:

La configuración del servidor X puede ser muy rápida (funciona inmediatamente), o muy larga. En el segundo caso, te doy algunos consejos:
  1. Lee la documentación que se encuentra en ./doc. Un buen numero de pantallas y de tarjetas están descritas con los relojes que se deben utilizar.
  2. Empieza con una resolución baja (640x480) : es mas simple.
  3. Si necesitas los clocks de tu carta, lanza startx 2>/tmp/err. En el archivo /tmp/err van a estar todos los mensajes del servidor, entre ellos el chip de tu carta y sus clocks. La única cosa que te va a faltar por configurar, es tu pantalla.
  4. Lee el "Video HOWTO", escrito por J.M. Vansteene y disponible sobre ftp.ibp.fr en el repertorio /pub/linux/french/docs/HOWTO.
  5. utiliza el programa xvidtune : permite "afinar" la imagen (centrarla, etc). Por ejemplo, yo tenia una tembladera : con este programa, pude resolver el problema.

9.2 Teclado francés bajo X : Xmodmap

Pasamos ahora al teclado francés bajo X Window. Como XFree fue concebido por personas que utilizan teclados americanos (qwertyiop), la configuración del teclado puede parecer bastante complicada. Te recomiendo seguir lo que sigue...

Primero, debes tener en el archivo XF86Config las siguientes opciones:

 
      LeftAlt     Meta 
      RightAlt    ModeShift 
      # RightCtl    Compose 
      ScrollLock  ModeLock 
Luego, pones el siguiente archivo en el repertorio /usr/X11R6/lib/X11/xinit. Debe llamarse .Xmodmap. El archivo que sigue fue hecho por Rene Cougnenc. Hoy en dia es el que yo utilizo. y pienso que es dificil hacer algo mejor. Funciona bajo XFree86 3.2.
 
  ! teclado francés AZERTYUIOP para XFree86 3.2 
  ! 
  ! Los acentos circunflejos de las principales vocales se obtienen con 
  ! la tecla Mode_switch (ALT_GR). 
  ! 
  ! Los dos puntos se obtienen con  ALT_GR + SHIFT, sobre 'e', 'i', 'o', y 'u'. 
  ! 
  ! Esperemos que un día podremos obtener el teclado francés standard sobre 
  ! el cual todo el mundo aprenda a teclear... 
  !<item>---------------------------------------------------------------------- 
  ! 
 keycode   9 = Escape 
  keycode  10 = ampersand 1 
  keycode  11 = eacute 2 asciitilde 
  keycode  12 = quotedbl 3 numbersign 
  keycode  13 = apostrophe 4 braceleft 
  keycode  14 = parenleft 5 bracketleft 
  keycode  15 = minus 6 bar 
  keycode  16 = egrave 7 grave 
  keycode  17 = underscore 8 backslash 
  keycode  18 = ccedilla 9 asciicircum 
  keycode  19 = agrave 0 at 
  keycode  20 = parenright degree bracketright 
  keycode  21 = equal plus braceright 
  keycode  22 = BackSpace 
  keycode  23 = Tab 
  keycode  24 = a A acircumflex 
  keycode  25 = Z 
  keycode  26 = e E ecircumflex ediaeresis 
  keycode  27 = R 
  keycode  28 = T 
  keycode  29 = Y 
  keycode  30 = u U ucircumflex udiaeresis 
  keycode  31 = i I icircumflex idiaeresis 
  keycode  32 = o O ocircumflex 
  keycode  33 = P 
  keycode  34 =  dead_circumflex dead_diaeresis 
  keycode  35 = dollar sterling 
  keycode  36 = Return 
  keycode  37 = Control_L 
  keycode  38 = Q 
  keycode  39 = S 
  keycode  40 = D 
  keycode  41 = F 
  keycode  42 = G 
  keycode  43 = H 
  keycode  44 = J 
  keycode  45 = K 
  keycode  46 = L 
  keycode  47 = M 
  keycode  48 = ugrave percent 
  keycode  49 = guillemotleft guillemotright 
  keycode  50 = Shift_L 
  keycode  51 = asterisk mu 
  keycode  52 = W 
  keycode  53 = X 
  keycode  54 = C 
  keycode  55 = V 
  keycode  56 = B 
  keycode  57 = N 
  keycode  58 = comma question 
  keycode  59 = semicolon period 
  keycode  60 = colon slash 
  keycode  61 = exclam slash 
  keycode  62 = Shift_R 
  keycode  63 = asterisk 
  keycode  64 = Alt_L 
  keycode  65 = space 
  keycode  66 = Caps_Lock 
  keycode  67 = F1 
  keycode  68 = F2 
  keycode  69 = F3 
  keycode  70 = F4 
  keycode  71 = F5 
  keycode  72 = F6 
  keycode  73 = F7 
  keycode  74 = F8 
  keycode  75 = F9 
  keycode  76 = F10 
  keycode  77 = Num_Lock 
  keycode  78 = Scroll_Lock 
  keycode  79 = 7 
  keycode  80 = 8 
  keycode  81 = 9 
  keycode  82 = KP_Subtract 
  keycode  83 = 4 
  keycode  84 = 5 
  keycode  85 = 6 
  keycode  86 = KP_Add 
  keycode  87 = 1 
  keycode  88 = 2 
  keycode  89 = 3 
  keycode  90 = 0 
  keycode  91 = period 
  keycode  92 = 0x1007ff00 
  keycode  93 = 
  keycode  94 = less greater 
  keycode  95 = F11 
  keycode  96 = F12 
  keycode  97 = Home 
  keycode  98 = Up 
  keycode  99 = Prior 
  keycode 100 = Left 
  keycode 101 = Begin 
  keycode 102 = Right 
  keycode 103 = End 
  keycode 104 = Down 
  keycode 105 = Next 
  keycode 106 = Insert 
  keycode 107 = Delete 
  keycode 108 = KP_Enter 
  keycode 109 = Control_R 
  keycode 110 = Pause 
  keycode 111 = Print 
  keycode 112 = KP_Divide 
  keycode 113 = Mode_switch 
  keycode 114 = Break 
 
  ! Nuevos valores para el teclado numérico a partir de XFree 3.1.1 
  !keycode 147 = Home 
  !keycode 148 = Up 
  !keycode 149 = Prior 
  !keycode 150 = Left 
  !keycode 152 = Right 
  !keycode 153 = End 
  !keycode 154 = Down 
  !keycode 155 = Next 
  !keycode 156 = Insert 
  !keycode 157 = Delete 
 
  !keycode  136 = 7 
  !keycode  137 = 8 
  !keycode  138 = 9 
  keycode  82 = KP_Subtract 
  !keycode  139 = 4 
  !keycode  140 = 5 
  !keycode  141 = 6 
  !keycode  86 = KP_Add 
  !keycode  142 = 1 
  !keycode  143 = 2 
  !keycode  144 = 3 
  !keycode  145 = 0 
  !keycode  146 = period 
  !----------------------------------------------------------------------- 
Los caracteres " y " se obtienen respectivamente presionando la tecla donde hay un un dos pequeño para " y Shift + dos para ".

9.3 Teclado francés bajo X... 2da posibilidad

Nota: Personalmente, utilizo la primera solución sin ningún problema... Si llegas a tener algún problema, ensaya esta otra.

Esta solución viene de Michel Billaud. Bueno, partimos de la constatación de que las teclas acento grave (ALT-4) y acento agudo (ALT 7) son difíciles de utilizar : si son mudas hay que doblarlas la mayor parte del tiempo, si no lo son no se pueden acentuar las E A U etc.

Entonces, es necesario que ALT 4 y ALT 7 produzcan verdaderos acentos agudos y apóstrofes. De todas formas, nos hacen falta teclas mudas (además). Será necesario modificar el "map" del teclado.

Entonces se debe hacer:

En el repertorio /usr/lib/kbd/keytables.map, copia fr-lat1.map bajo otro nombre (tuteclado.map). Lanza showkey para ver el numero de las teclas concernidas, en orden : 5 8 10 26 y 40. Luego edita tuteclado.map para hacer las modificaciones. Para hacer un test, haz loadkeys tuteclado.map. Cuando estés seguro que todo funciona correctamente, modifica /etc/rc.d/rc.keymap para que cargue tuteclado.map y escribir sobre tu teclado con un lápiz y no con tinta ... :-)

También se puede poner una "tilde muda" en el 2 superior y una "tilde dura" (indispensable para un shellista) en ALT-2.

9.4 xdm

Para arrancar directamente con X Window (xdm), tienes que modificar el archivo /etc/inittab y cambiar la linea que contiene initdefault. Por ejemplo en mi maquina solo tengo que remplazar :

 
  id:5:initdefault: 
  #id:6:initdefault: 
por
 
  #id:5:initdefault: 
  id:6:initdefault: 
Pero cuidado ! Ciertas distribuciones utilizan el nivel 6 para rearrancar. Lo mas simple es mirar en el repertorio /etc/rc.d si el archivo rc.6 lanza el xdm.

Para lanzar xdm en 16 o 32 bits, hay que modificar el archivo /usr/X11/lib/X11/xdm y poner :

 
  :0 local /usr/X11/bin/X -bpp 16 (o 32) 

9.5 Como arrancar varias sesiones X ?

Para poder arrancar varias sesiones X en diferentes consolas sin tener que especificar el "display" a utilizar, agrega al fin del archivo startx :

 
  CONSOLE=`tty` 
  CONSOLE=`basename $CONSOLE` 
  CONSOLE=`echo $CONSOLE | sed s/tty//` 
  CONSOLE=`expr $CONSOLE<item> 1` 
 
  echo <sq>Starting X on display <sq>$CONSOLE 
 
  exec xinit $clientargs -- $serverargs :$CONSOLE 

9.6 Como recuperar los errores en la consola ?

Es común que los errores salgan en la ventana virtual texto a partir de la cual tu as lanzado el servidor. Una solución consiste en lanzar el servidor de esta manera :

 
 xinit > /dev/console 2>&1 
Si utilizas la Slackware, solo tienes que editar el script startx y remplazar la linea :
 
  exec xinit $clientargs -- $serverargs 
por
 
  exec xinit $clientargs -- $serverargs >/dev/console 2>&1 

9.7 XFree y XInput

A partir de la versión XFree 3.1.2B, el servidor X de XFree86 soporta la extensión Xinput. Esta extensión permite emplear simultáneamente varios dispositivos de entrada. En Xfree86, hay 3 por el momento :

Los pilotos para estos dispositivos son cargados dinamicamente en el servidor a partir de la versión 3.1.2D agregando las siguientes lineas al archivo XF86Config :
 
  Section "Module" 
      Load "xf86Wacom.so" 
      Load "xf86Elo.so" 
      Load "xf86Jstk.so" 
  EndSection 
Xfree busca los módulos en un repertorio predefinido : /usr/X11R6/lib/modules o en un camino especificado en la sección "Files" :
 
  Section "Files" 
      ModulePath  "/usr/X11R6/lib/,/usr/X11R6/lib/modules/" 
      ModulePath  "/usr/X11R6/bin" 
  EndSection 
El ModulePath debe ser especificado antes de la sección "Module" para funcionar

Cada dispositivo posee su propia sub-sección de configuración. Consultar la pagina del manual de XF86Config para mas detalles. Un dispositivo se activa solamente si posee una sub-sección. El siguiente ejemplo activa un joystick y una mesa :

 
  Section "XInput" 
      SubSection "Joystick" 
          Port                    "/dev/js0" 
          Timeout                 20 
          MinimumXPosition        28 
          MaximumXPosition        1206 
          MinimumYPosition        27 
          MaximumYPosition        1239 
          Delta                   20 
      EndSubsection 
 
      SubSection "WacomStylus" 
          Port            "/dev/ttyS2" 
      EndSubsection 
  EndSection 
En seguida el servidor puede emitir los eventos extendidos o bien bascular un dispositivo en core pointer. Dos programas existen para manipular los dispositivos extendidos :

9.8 Un problema bastante corriente

Una pregunta que hacen muy seguido : Yo no se porque bajo Xfree86, a veces no puedo mover las ventanas, no tengo acceso a los botones ni a los menús (salvo aquellos de las ventanas sistemas)?. La solución es muy simple : desbloquear "Scroll Lock" !


Previous Next Table of Contents