Página siguiente Página anterior Índice general

10. 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 máquina será muy lenta: se va a pasar todo el tiempo en "swapping".

En primer lugar, instale con la ayuda de su distribución el servidor que se corresponda mejor con su tarjeta gráfica.

10.1 XF86Config

El problema con X Window, es configurar el archivo XF86Config. Cuidado, este archivo es muy 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 el archivo, lance el programa SuperProbe. En mi caso, esto me permite obtener las siguientes informaciones. (Si, ya se que es una tarjeta de video super vieja... pero bueno, tiramos 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 viene lo más duro : construir el archivo de configuración. Atención: en ciertas distribuciones, el archivo XF86config está en el directorio /etc/X11, lo cual es una buena idea en el caso de una red de estaciones Linux que comparten /usr por NFS. Si utiliza una o varias máquinas independientes, puede suprimir /etc/X11/XF86config y utilizar /usr/X11R6/lib/X11/XF86Config.

Las nuevas versiones de las distribuciones traen ciertas herramientas que permiten automatizar la instalación y la configuración del servidor. Pruebe primero con estas herramientas: es muy probable que funcionen directamente.

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 lenta. En el segundo caso, algunos consejos:

  1. Leer la documentación que se encuentra en ./doc. Un buen número de pantallas y de tarjetas están descritas con los relojes que se deben utilizar.
  2. Empezar con una resolución baja (640x480) : es más sencillo.
  3. Si necesita los clocks de su tarjeta, lance X -probeonly 2>/tmp/err. (si utiliza csh ou tcsh como intérprete de órdenes, reemplace 2> por >&. En el archivo /tmp/err van a estar todos los mensajes del servidor, entre ellos el chip de su tarjeta y sus clocks. La única cosa que va a faltar por configurar, es la pantalla.
  4. Leer el "Video HOWTO", escrito por J.M. Vansteene y disponible en ftp.lip6.fr en el directorio /pub/linux/french/docs/HOWTO.
  5. utilizar el programa xvidtune : permite "afinar" la imagen (centrarla, etc). Por ejemplo, yo tenía cierto temblor en la imagen : con este programa, pude resolver el problema.

Si el inglés le desespera, puede leer una versión francesa de toda la docuemntación XFree86 3.2 en formato HTML. Para ello vaya al servidor http://www.kheops.com.

10.2 Teclado francés bajo X : Xmodmap

Nota: les utilisateurs de clavier de type suisse-romand seront heureux d'aller consulter la documentation qui se trouve à l'adresse http://dmawww.epfl.ch/roso.mosaic/jaf/linux/clavierromand.html. Divers autres types de claviers pour francophones sont décrits par ailleurs.

Nota: los usuarios de teclado tipo "suisse-romand" hara bien en consultar la documentación que se encuentra en la dirección http://dmawww.epfl.ch/roso.mosaic/jaf/linux/clavierromand.html. Otros tipos de teclados para francófonos son descritos aquí.

Pasamos ahora al teclado francés bajo X Window. Como XFree86 fue concebido por personas que utilizan teclados americanos (qwertyiop), la configuración del teclado puede parecer bastante complicada. 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 directorio /usr/X11R6/lib/X11/xinit. Debe llamarse .Xmodmap.

El archivo que sigue fue hecho por Rene Cougnenc. Hoy en día 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 XFree86 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 dos pequeño para " y Shift + dos para ".

10.3 Teclado francés bajo X... segunda posibilidad

Nota: Personalmente, utilizo la primera solución sin ningún problema... Si llega a tener algún problema, pruebe 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 "mapa" del teclado.

Entonces se debe hacer:

En el directorio /usr/lib/kbd/keytables.map, copiar fr-lat1.map bajo otro nombre (miteclado.map). Lanzar showkey para ver el número de las teclas involucradas, en orden : 5 8 10 26 y 40. Luego editar miteclado.map para hacer las modificaciones.

Para hacer un test, hacer loadkeys miteclado.map. Cuando esté seguro que todo funciona correctamente, modifique /etc/rc.d/rc.keymap para que cargue miteclado.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.

10.4 Teclado francés bajo X... utilizar xkb

Es necesario utilizar un servidor X bastante reciente para utilizar esto (XFree86 3.2 mínimo). En la sección "Keyboard" del fichero de configuración, añadir:

   XkbKeycodes     "xfree86"
   XkbTypes        "default"
   XkbCompat       "default"
   XkbSymbols      "us(pc101)"
   XkbGeometry     "pc"
   XkbRules        "xfree86"
   XkbModel        "pc102"
   XkbLayout       "fr"

Si el teclado no tiene 101 teclas, habrá que reemplazar "102" por "101", "pc102", "104" o "105", con el fin de utilizar las teclas especiales (MS-Windows).

Para más información, mire el contenido del directorio /usr/X11R6/lib/X11/xkb.

10.5 xdm

Para arrancar directamente con X Window (xdm), hay que modificar el archivo /etc/inittab y cambiar la línea que contiene initdefault. Por ejemplo en mi máquina sólo 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 más simple es mirar en el archivo /etc/inittab: éste contiene normalmente una descripción de los niveles de ejecución y a qué corresponden.

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)

10.6 ¿ Cómo arrancar varias sesiones X ?

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

  CONSOLE=`tty`
  CONSOLE=`basename $CONSOLE`
  CONSOLE=`echo $CONSOLE | sed s/tty//`
  CONSOLE=`expr $CONSOLE - 1`

  echo "Starting X on display "$CONSOLE

  exec xinit $clientargs -- $serverargs :$CONSOLE

Tambien se utiliza la siguiente solución que tiene como ventaja el utilizar la primera consola libre:

for AFFICHAGE in 0 1 2 3 4 5;
do
    if [ ! -f /tmp/.X$AFFICHAGE-lock ];
    then
       exec xinit $clientargs -- $serverargs :$AFFICHAGE >/dev/console 2>&1
       exit
     fi
done

10.7 ¿ Cómo recuperar los errores en la consola ?

Es normal que los errores salgan en la ventana virtual texto a partir de la cual se ha lanzado el servidor. Una solución consiste en lanzar el servidor de esta manera :

 xinit > /dev/console 2>&1

Si utiliza la Slackware, solo tiene que editar el script startx y remplazar la línea :

  exec xinit $clientargs -- $serverargs
por
  exec xinit $clientargs -- $serverargs >/dev/console 2>&1

10.8 XFree86 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 controladores para estos dispositivos son cargados dinámicamente en el servidor a partir de la versión 3.1.2D agregando las siguientes líneas al archivo XF86Config :

  Section "Module"
      Load "xf86Wacom.so"
      Load "xf86Elo.so"
      Load "xf86Jstk.so"
  EndSection
XFree86 busca los módulos en un directorio predefinido : /usr/X11R6/lib/modules o en una ruta especificada 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 página del manual de XF86Config para más detalles. Un dispositivo se activa sólamente si posee una sub-sección. El siguiente ejemplo activa un joystick y una tableta digitalizadora :

  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
A partir de ahí el servidor puede emitir eventos extendidos o bien convertir un dispositivo en core pointer. Existen dos programas para manipular los dispositivos extendidos :

10.9 Un problema bastante corriente

Una pregunta muy frecuente : Yo no se porqué 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 de sistema)?. La solución es muy simple : ¡ Desbloquear "Num Lock" !

10.10 Ratón para zurdos

Ciertos zurdos prefieren invertir el orden de los botones. Para ello, modifique los ficheros .xinitrc y xsession indicando:

xmodmap -e "pointer = 3 2 1"


Página siguiente Página anterior Índice general