Maintenant que tout fonctionne bien, on passe à un autre gros morceau : l'installation de X Window.
Pour pouvoir utiliser X Window, il faut posséder une configuration raisonnable (au moins 8Mo de mémoire). Dans le cas contraire, la machine sera très lente : elle va passer son temps à swapper.
Dans un premier temps, installez à l'aide votre distribution le serveur correspondant à la carte graphique.
Le problème avec X Window, c'est de configurer le fichier. Il s'agit
du fichier XF86Config
. Il s'agit ici du serveur
XFree86 3.2, basé sur X11R6. Avant de commencer à construire votre fichier,
lancez le programme SuperProbe
. Dans mon cas, cela me
permet d'obtenir les renseignements suivants (oui, je sais, c'est une
vielle carte viédo... mais bon, on fait avec les moyens du bord !) :
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))
Ensuite, le plus dur reste à faire : construire le fichier de configuration.
Attention : dans certaines distributions, le fichier XF86config est placé
dans le répertoire /etc
, ce qui est une bonne idée dans le cas
d'un réseau de stations Linux partageant /usr
par NFS. Si
vous utilisez une ou plusieurs machines indépendantes, vous pouvez supprimer
/etc/XF86config
et utiliser /usr/X11R6/lib/X11/XF86Config
.
Les nouvelles versions de distributions sont livrées avec certains outils permettant d'automatiser l'installation et la configuration du serveur. Essayez dans un premier temps avec cet outil : il est fort probable que cela fonctionne directement.
Ce fichier se présente sous la forme de sections. En voici une description :
Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/Type1/" FontPath "/usr/X11R6/lib/X11/fonts/Speedo/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/" FontPath "/usr/X11R6/lib/X11/fonts/xtel/" EndSectionDans cette section, il n'y a pas grand chose à modifier. Ajoutez ou supprimez les chemins des polices de caractères, et la liste des couleurs RGB.
Section "ServerFlags" EndSectionPour ma part, elle est vide...
Section "Keyboard" Protocol "Standard" # AutoRepeat 500 5 ServerNumLock # Pour cela, voir plus bas LeftAlt Meta RightAlt ModeShift # RightCtl Compose ScrollLock ModeLock
Section "Pointer" # pour le protocole, utilise MouseMan, MouseSystems, Logitech ou Microsoft Protocol "MouseMan" # Peripherique a utiliser Device "/dev/mouse" BaudRate 1200 # Emulation 3 boutons : le click sur les 2 boutons # simulent le bouton du milieu... pour les souris a deux boutons. Emulate3Buttons # ChordMiddle is an option for some 3-button Logitech mice # ChordMiddle EndSection
doc
contiennent les caractéristiques de tout un tas d'écrans.
Il est fort possible que vous y trouviez votre bonheur.
Section "Monitor" Identifier "Sync3N" VendorName "Samsung" ModelName "3N" # Frequences : Bandwidth 25.2 HorizSync 31.5-80 VertRefresh 60-90 # Les modes dans lesquels l'ecran peut fonctionner Modeline "800x600" 40 800 840 968 1056 600 601 605 628 Modeline "640x480" 25.175 640 664 760 800 480 491 493 525 Modeline "1024x768i" 45 1024 1040 1216 1264 768 768 778 819 interlace Modeline "1024x768" 75 1024 1048 1184 1328 768 771 777 806 EndSection
Section "Device" # Baratin Identifier "CartePerso" VendorName "Cirrus" # Nom de la carte BoardName "clgd5428" #memoire video VideoRam 1024 # nom du chip Chipset "clgd5428" # clocks d'horloges. Clocks 25.23 28.32 41.16 36.08 31.50 39.99 45.08 49.87 Clocks 64.98 72.16 75.00 80.01 85.23 EndSection
Section "Screen" Driver "svga" # References aux autres sections. Device "CartePerso" Monitor "Sync3N" # Le display utilise Subsection "Display" Depth 8 # 256 couleurs max # Modes par priorite : de gauche a droite Modes "1024x768" "800x600" "640x480" ViewPort 0 0 # Resolution virtuelle Virtual 1024 768 option "linear" EndSubsection EndSectionSi votre carte le permet, vous pouvez ajouter d'autres sous-sections pour le display :
Subsection "Display" Depth 32 Modes "640x480" ViewPort 0 0 Virtual 800 600 EndSubsectionDans ce cas, le serveur fonctionnera en 16 millions de couleurs.
La configuration du serveur X est soit très rapide (marche tout de suite), soit très longue. Dans le deuxième cas, voici quelques conseils :
./doc
. Un bon nombre
d'écrans et de cartes sont décrites avec les horloges à utiliser.startx 2>/tmp/err
. Dans le fichier /tmp/err
vont se
trouver tous les messages du serveur, dont
le chip de la carte ainsi que ses clocks. La seule chose qu'il va rester
à configurer, c'est l'écran.ftp.lip6.fr
dans le répertoire
/pub/linux/french/docs/HOWTO
;xvidtune
: il permet "d'affiner"
la mise au point de l'image (centrage, etc). Par exemple, j'avais
un certain tremblement à l'image : avec ce programme, j'ai pu résoudre
le problème.Si jamais l'anglais vous rebute, vous pouvez lire une version française de toute la documentation XFree86 3.2, au format HTML. Pour cela, allez sur le serveur http://www.kheops.com.
On passe maintenant au clavier français sous X Window. Comme XFree a été conçu par des gens se servant de claviers américains (qwertyiop), la configuration du clavier peut sembler être assez affolante. Je vous conseille de suivre ce qui suit...
Tout d'abord, vous devez avoir dans le fichier XF86Config les options suivantes :
LeftAlt Meta RightAlt ModeShift # RightCtl Compose ScrollLock ModeLock
Ensuite, placez le fichier suivant dans le répertoire
/usr/X11R6/lib/X11/xinit
. Il doit s'appeler .Xmodmap
.
Le fichier qui suit a été fait par René Cougnenc. A l'heure actuelle, c'est celui dont je me sers... et je pense qu'il est difficile de faire mieux. Il fonctionne sur XFree86 3.2.
! clavier Francais AZERTYUIOP pour XFree86 3.2 ! ! ! Les accents circonflexes des principales voyelles sont obtenus avec ! la touche Mode_switch (ALT_GR). ! ! Les tremas sont obtenus par ALT_GR + SHIFT, sur 'e', 'i', 'o', et 'u'. ! ! Esperons qu'un jour on pourra obtenir le clavier Francais standard sur ! lequel tout le monde apprend a taper... ! ----------------------------------------------------------------------- ! 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 ! Nouvelles valeurs pour le pave numerique 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 ! -----------------------------------------------------------------------
Les caractères "et " sont obtenus respectivement en appuyant sur la touche où il y a un petit deux (en haut à gauche, sous "Echappement") pour "et Shift + deux pour ".
Rq: personnellement, j'utilise la première solution sans aucun problème... Si jamais vous avez trop de problèmes, essayez celle-ci.
Cette solution nous vient de Michel Billaud. Bon, on part de la constatation que les touches accent-grave (ALT-4) et accent-aigu (ALT 7) sont pénibles à utiliser : si elles sont muettes il faut les doubler la plupart du temps, si elles ne le sont pas on ne peut pas accentuer les E A U etc.
Donc, il faut que ALT 4 et ALT 7 produisent de vrais accents aigus et apostrophe. Il nous faut quand même des touches muettes (en plus). Il va falloir modifier la "map" du clavier.
On va donc faire :
Dans le répertoire /usr/lib/kbd/keytables.map
,
copier fr-lat1.map
sous un autre nom (monclavier.map
).
Lancer showkey
pour voir le numéro des touches concernées
dans l'ordre : 5 8 10 26 et 40. Puis éditer monclavier.map
pour faire les modifications.
Pour tester, faire loadkeys monclavier
. Lorsque tout semble
fonctionner, modifier /etc/rc.d/rc.keymap
pour qu'il charge
monclavier.map et gribouiller le clavier avec un crayon,
pas un feutre... :-).
On peut aussi mettre un "tilde muet" sur le 2 supérieur et un "tilde dur" (indispensable au shelliste) sur ALT-2.
Il est nécessaire d'utiliser un serveur X assez récent pour mettre en place cela (XFree 3.2 minimum). Dans la section "Keyboard" du fichier de configuration, ajouter :
XkbKeycodes "xfree86" XkbTypes "default" XkbCompat "default" XkbSymbols "us(pc101)" XkbGeometry "pc" XkbRules "xfree86" XkbModel "pc102" XkbLayout "fr"
Pour plus d'informations, regarder le répertoire /usr/X11R6/lib/X11/xkb
.
Pour démarrer X Window directement au boot (xdm
), vous pouvez modifier
le fichier /etc/inittab
en changeant la ligne contenant
initdefault
. Par exemple sur ma machine, il suffit de remplacer
id:5:initdefault: #id:6:initdefault:par
#id:5:initdefault: id:6:initdefault:
Mais attention ! Certaines distribution utilisent le
niveau 6 pour réamorcer. Le plus simple est de regarder dans le répertoire
/etc/rc.d
si le fichier rc.6
lance bien xdm.
Pour lancer xdm
en 16 ou 32 bits, il faut modifier
le fichier /usr/X11/lib/X11/xdm
et mettre :
:0 local /usr/X11/bin/X -bpp 16 (ou 32)
Afin de pouvoir démarrer plusieurs sessions X sur différentes consoles sans avoir à spécifier le "display" à utiliser, ajoutez à la fin du fichier 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
Il arrive fréquemment que les erreurs se trouvent dans la fenêtre texte virtuelle à partir de laquelle vous avez lancé le serveur. Une solution consiste à lancer le serveur de cette manière :
xinit > /dev/console 2>&1Si vous utilisez la Slackware, il suffit d'éditer le script
startx
et de remplacer la ligne
exec xinit $clientargs -- $serverargspar
exec xinit $clientargs -- $serverargs >/dev/console 2>&1
À partir de la version XFree 3.1.2B, le serveur X de XFree86 supporte l'extension XInput. Cette extension permet d'employer simultanément plusieurs périphériques d'entrée. Dans XFree86, il y a en a 3 pour l'instant :
Le support pour ces périphériques est chargé dynamiquement dans le serveur à partir de la version 3.1.2D en ajoutant les lignes suivantes au fichier XF86Config :
Section "Module" Load "xf86Wacom.so" Load "xf86Elo.so" Load "xf86Jstk.so" EndSection
XFree cherche les modules dans un répertoire prédéfini : /usr/X11R6/lib/modules ou bien suivant un chemin spécifié dans la section "Files" :
Section "Files" ModulePath "/usr/X11R6/lib/,/usr/X11R6/lib/modules/" ModulePath "/usr/X11R6/bin" EndSection
Le ModulePath doit être specifié avant la section "Module" pour fonctionner.
Chaque périphérique possède sa propre sous-section de configuration. Consulter la page de manuel de XF86Config pour avoir le détail. Un péripherique n'est activé que s'il possède une sous-section. L'exemple suivant active un joystick et une tablette :
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
Ensuite le serveur peut émettre des évènements étendus ou bien basculer un périphérique en core pointer. Deux programmes existent pour manipuler les devices étendus :
xsetpointer
bascule un périphérique en core pointer ou liste
les périphériques ;xsetmode
passe un périphérique en absolu ou en relatif.
On doit changer le mode d'un périphérique avant qu'il ne soit basculé en
core pointer. Une question qui revient assez souvent : je ne sais pas pourquoi sous XFree 86, de temps à autres je ne peux plus déplacer les fenêtres, n'ai plus accès aux boutons et aux menus déroulant (sauf ceux des fenêtres système) ? . La solution est très simple : déverrouiller Scroll Lock ("arrêt défil") !