Où sommes nous ?

Retour

X Windows (X11)

En savoir plus

Wikipédia

X window ou X11 maintenant, elle la couche de bas niveau qui fournit un environnement graphique aux systèmes Unix modernes (c'est un grand raccourci, voir les liens ci-contre). Jusqu'à quelques années en arrières, c'était une vraie galère de le configurer sur PC ... avec des fichiers de configuration complètement abscons et tout à refaire à chaque fois qu'on devait changer quelque chose. Mais c'est de l'histoire ancienne, car tout ce fait maintenant (presque) automatiquement ...

Quelle carte utilisons non ?

La première chose à faire est de déterminer quelle est la carte graphique que nous utilisons :

chose laurent # lspci
...
00:0c.0 SCSI storage controller: Adaptec AHA-2940U/UW/D / AIC-7881U (rev 01)
01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G400/G450 (rev 82)
...
chose laurent #

Ici, c'est une Matrox G450. Une recherche sur Internet permet de savoir quelles sont les options à activer dans le kernel (dans mon cas, CONFIG_DRM_MGA) et les précautions à prendre. Je ne rentre pas dans les détails, car chaque carte a ses spécificités et les forums sont d'un grand secours.

Ces mêmes sources indiqueront aussi quel est le drivers X à utiliser, driver que nous indiquons dont le fameux fichier /etc/make.conf par la directive VIDEO_CARDS.

VIDEO_CARDS="mga vesa fbdev"
INPUT_DEVICES="evdev"

A noter les vesa et fbdev : Ce sont nos solutions de secours. Si le driver de la carte ne fonctionne pas, X tentera ces derniers qui sont des drivers génériques : au revoir l'accélération et les résolutions de ouf ... mais elles ont toutes les chances de fonctionner (ce qui m'a été bien utile sur le Dell).

L'INPUT_DEVICE indique au système comment communiquer avec les périphériques d'entrée comme le clavier et la souris. evdev est une couche intermédiaire qui s'occupe de ça tout seule, c'est la solution à utiliser de nos jours.

Perdu ?

Il est possible d'avoir la liste de tout les drivers reconus par la commande :

dell linux # emerge -pv xorg-drivers

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild R ] x11-base/xorg-drivers-1.10 INPUT_DEVICES="evdev -acecad -aiptek -joystick -keyboard -mouse -synaptics -tslib -virtualbox -vmmouse -void -wacom" VIDEO_CARDS="fbdev intel vesa -apm -ark -ast -chips -cirrus -dummy -epson -fglrx -geode -glint -i128 -i740 (-impact) -mach64 -mga -neomagic (-newport) -nouveau -nv -nvidia (-omapfb) -qxl -r128 -radeon -rendition -s3 -s3virge -savage -siliconmotion -sis -sisusb (-sunbw2) (-suncg14) (-suncg3) (-suncg6) (-sunffb) (-sunleo) (-suntcx) -tdfx -tga -trident -tseng -v4l -via -virtualbox -vmware (-voodoo)" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

Configuration du kernel

evdev

evdev est le gestionnaire d'évènements qui fait le lien entre les périphériques d'entrée (clavier, souris, ...) et X. Il faut l'activer dans le kernel.

Device Drivers --->
Input device support --->
<*> Event interface

La carte graphique

La première étape consiste à inclure dans le kernel le driver correspondant à la carte graphique présente sur le système. On trouvera plus d'information dans ma page concernant le kernel, ainsi dans les pages dédiées à mes machines.

Il faudra :

Device Drivers --->
Graphics support --->
<*> Direct Rendering Manager --->
Device Drivers --->
Graphics support --->
/dev/agpgart (AGP Support) --->

Installation du serveur X

Le serveur X (car en fait, cette couche utilise du client serveur, ce qui permet de déporter un affichage sur une autre machine) se trouve dans le paquet xorg-server. Il faudra aussi lui ajouter quelques polices de caractères ...

emerge media-fonts/corefonts media-fonts/ttf-bitstream-vera xorg-server

Attention, les dépendances sont nombreuses donc la compilation sera longue ...

Dans le cas d'une compilation distribuée (binhost) pour éviter que le serveur X se recompile sur toutes les machines, il faut spécifier toutes les cartes sur toutes les machines. Dans mon cas, ça donne :

VIDEO_CARDS="intel mga sis r128 vesa fbdev radeon"

Xorg se débrouillera pour ne charger que le driver adéquat.

Configuration

Il n'y a besoin d'aucun fichier de configuration, X se débrouille tout seul et prend les options par défaut. Mais il est parfois nécessaire de lui indiquer nos propres préférences.

Plutôt qu'un fichier monolithique, X peut se configurer par des petits fichiers placés dans le répertoire  /etc/X11/xorg.conf.d/

Par exemple, j'ai le fichier 30-keyboard.conf suivant :

Section "InputClass"
        Identifier "keyboard-all"
        Driver "evdev"
        Option "XkbLayout" "us"
        Option "XkbRules" "xorg"
        Option "XkbOptions" "compose:rwin,terminate:ctrl_alt_bksp"
        MatchIsKeyboard "on"
EndSection

On peut voir la liste des touches disponibles dans le fichier /usr/share/X11/xkb/rules/xorg.lst.

Si on lance X maintenant (startx depuis un shell par exemple), on n'aura droit qu'à un écran noir ... X s'occupe des couches de bas niveau, un peu comme Intuition sur Amiga, il faut lui ajouter un windows manager (OpenBox) et un Desktop environment (LXDE) pour que s'affiche quelque chose d'utile.

Et mes accents, hein, ils sont où ?

Il arrive parfois que les accents de programmes s'affichent mal : "locale" n'est pas correctement définie. Les systèmes récents sont tous en UTF-8 mais certains programmes ne le supportent pas encore et il faut alors utiliser l'ancienne méthode.

/etc/locale.gen

Par défaut, Gentoo gérera toutes les locales, ce qui peut prendre beaucoup de temps. On peut indiquer celles que nous souhaitons utiliser en renseignant le fichier /etc/locale.gen.

Le mien contient :

en_US ISO-8859-1
en_US.UTF-8 UTF-8

fr_FR.UTF-8 UTF-8
fr_FR ISO-8859-1
fr_FR@euro ISO-8859-15

On regénerera les locales par la commande locale-gen

/etc/env.d/02locale

Ce fichier contient la localisation global du système. Ce qui donne :

LANG="fr_FR.UTF-8"

Si un programme refuse l'UTF-8, on peut repasser à la locale simple-byte en changeant la valeur de la variable LANG avant de le lancer dans un shell. Par exemple :

LANG=fr_FR@euro && cinelerra

On peut aussi lui faire causer l'anglais :

LANG=en_US.UTF-8 && cinelerra

Des problèmes ?

X ne se lance plus après une mise à jour

Il se peut que X ne se lance plus après une mise-à-jour, ce qui est généralement due aux drivers qui ont besoin d'être rafraichis.

S'assurer que les packages app-portage/portage-utils et app-portage/gentoolkit sont bien présents dans le système, puis lancer les commandes suivantes :

emerge -a1 $(qlist -IC x11-drivers/)
revdep-rebuild

En cas de problème avec la carte graphique

Si le driver de la carte graphique pose trop de problèmes, ou si l'on souhaite faire un CD qui boote sur n'importe quelle machine, il existe la possibilité d'utiliser le driver VESA. C'est un driver VGA, tout ce qu'il y a de plus basic donc sans accélération matériel, mais qui fonctionnera partout.

Dans le kernel, il suffit de n'active aucun driver propriétaire, mais uniquement le VESA. Et VIDEO_CARDS="vesa" l'activera dans X. (Voir la configuration du Dell SX260 pour plus d'information).


Visitez :
La liste de nos voyages
Nos sorties Ski et rando
Copyright Laurent Faillie 2001-2017
N'oubliez pas d'entrer le mot de passe pour voir aussi les photos perso.
Contactez moi si vous souhaitez réutiliser ces photos et pour les obtenir avec une plus grande résolution.
Visites durant les 7 derniers jours Nombre de visites au total.

Vous pouvez laissez un commentaire sur cette page.