Cet article traite de l’installation et de la configuration du système X Window sous FreeBSD. Il rassemble mes notes et mes observations succinctes sur les différentes étapes de la configuration du système graphique. C’est donc un complément à la documentation officielle assez fournie sur la question.
J’ai effectué mes tests dans une machine virtuelle sous VirtualBox, et sur une paire de PC de bureau Dell Optiplex 330 qui me servent de “bac à sable”.
Notre objectif consiste ici à installer et configurer le gestionnaire de fenêtres minimaliste Window Maker. Nous n’aborderons pas l’installation d’un environnement de bureau comme KDE, GNOME ou Xfce, même si c’est tout à fait possible. Nous utiliserons FreeBSD principalement sur des serveurs sans interface graphique.
Installer X11
Pour un composant important comme le serveur graphique, il vaut mieux récupérer la version précompilée.
# pkg install xorg
Le gestionnaire de paquets récupère un peu moins de deux cents paquets, notamment le serveur graphique, les pilotes, une panoplie de polices d’affichage et le gestionnaire de fenêtres minimaliste TWM (Tabbed Window Manager). Le téléchargement pèse près de 80 Mo.
Système invité VirtualBox
Si l’on a installé FreeBSD dans une machine virtuelle sous VirtualBox, c’est le moment d’installer les Additions Invité (Guest Additions). La procédure est assez simple. Dans un premier temps, il faut installer le paquet correspondant.
# pkg install virtualbox-ose-additions
Ensuite, il faut activer le pilote et le service associé en éditant /etc/rc.conf
.
vboxguest_enable="YES" vboxservice_enable="YES"
Pour finir, il suffit de redémarrer, et le tour est joué. Les utilisateurs qui feront tourner la machine virtuelle devront faire partie du groupe wheel
.
Premiers essais
Pour un premier test, se connecter en tant que simple utilisateur et lancer X11.
$ startx
Dans la machine virtuelle, c’est TWM qui se lance dans toute sa splendeur, mais avec une résolution inutilisable de 640×480. Quant au poste Dell Optiplex, le lancement de X11 provoque carrément un gel du système. Bon bon bon.
Configurer une carte Intel G31
Voyons de plus près cette carte vidéo qui pose problème sur le PC de bureau.
# pciconf -lv | less ... vgapci0@pci0:0:2:0: class=0x030000 card=0x02201028 ... vendor = 'Intel Corporation' device = '82G33/G31 Express Integrated Graphics Controller' class = display subclass = VGA
Apparemment, cette carte est gérée par deux pilotes différents.
- l’ancien pilote
i915
- le nouveau pilote
i915kms
en Kernel Mode Setting
Après recherche sur le Web, le nouveau pilote i915kms
peut faire geler certaines machines. Pour en avoir le coeur net, je fais un petit test.
# kldload i915kms
Le système ne répond plus, et je tiens le coupable. Il ne me reste qu’à appuyer sur le bouton Reset
pour redémarrer.
Pour résoudre le problème, je vais tenter de charger manuellement l’ancien pilote.
# kldload i915 info: [drm] Initialized i915 1.6.0 20080730
À présent, la commande startx
fonctionne, et TWM s’affiche correctement. Je garde donc cette configuration et j’édite /etc/rc.conf
en ajoutant le chargement du pilote i915
.
kld_list="i915"
Remplacer TWM par Window Maker
TWM est sans conteste le gestionnaire de fenêtres le plus moche et le moins fonctionnel de la planète. On va donc le remplacer par quelque chose de plus utilisable, tout en restant minimaliste.
# pkg install windowmaker
Le téléchargement fait près de 57 Mo pour une petite cinquantaine de paquets.
Pour lancer Window Maker, l’utilisateur doit disposer d’un fichier ~/.xinitrc
correspondant.
exec wmaker
Un coup de startx
, et c’est Window Maker qui s’affiche.
Corriger la résolution de l’affichage
Dans la machine virtuelle, Window Maker s’affiche toujours avec une résolution de 640×480. A priori, X11 n’a plus besoin du fichier de configuration global /etc/X11/xorg.conf
pour fonctionner correctement. La manière orthodoxe de procéder, c’est d’ajouter des bouts de fichiers contenant chacun une stance dans /usr/local/etc/X11/xorg.conf.d
.
Dans ce répertoire, je vais donc éditer un fichier screen.conf
en indiquant la résolution souhaitée. Notez que je suis libre dans le choix du nom de ce fichier, du moment qu’il se termine par *.conf
.
Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Viewport 0 0 Depth 24 Modes "1280x1024" EndSubSection EndSection
Configurer la disposition du clavier
L’environnement graphique utilise un clavier QWERTY américain par défaut. Sa configuration n’est pas lié à la console. Pour modifier cela, il me faut ajouter un fichier de configuration keyboard.conf
dans /usr/local/etc/X11/xorg.conf.d
. Pour mon clavier suisse romand, voilà ce que ça donne.
Section "InputClass" Identifier "KeyboardDefaults" Driver "keyboard" MatchIsKeyboard "on" Option "XkbLayout" "ch" Option "XkbVariant" "fr" EndSection
Avec un clavier français, on aura plutôt quelque chose comme ceci.
Option "XkbLayout" "fr"
Configurer l’apparence de Xterm
Dans la configuration par défaut, l’apparence de Xterm n’est pas très lisible. Pour corriger cela, on peut éditer un fichier ~/.Xresources
en indiquant le jeu de couleurs et de polices à utiliser.
XTerm*background: #000000 XTerm*foreground: LightGrey XTerm*font: 9x15 XTerm*VT100.geometry: 115x40
Ensuite, il faut ajouter une ligne à ~/.xinitrc
pour que ce fichier soit pris en compte.
xrdb -merge ~/.Xresources & exec wmaker
Le gestionnaire d’affichage XDM
L’installation d’un gestionnaire d’affichage (ou gestionnaire de connexion) nous évitera d’avoir à taper startx
à chaque fois que nous souhaitons démarrer une session graphique.
# pkg install xdm
L’activation de XDM au démarrage s’effectue dans le fichier /etc/ttys
.
# Virtual terminals ttyv1 "/usr/libexec/getty Pc" xterm on secure ttyv2 "/usr/libexec/getty Pc" xterm on secure ttyv3 "/usr/libexec/getty Pc" xterm on secure ttyv4 "/usr/libexec/getty Pc" xterm on secure ttyv5 "/usr/libexec/getty Pc" xterm on secure ttyv6 "/usr/libexec/getty Pc" xterm on secure ttyv7 "/usr/libexec/getty Pc" xterm on secure ttyv8 "/usr/local/bin/xdm -nodaemon" xterm on secure
XDM se renseigne dans le fichier ~/.xsession
pour savoir ce qu’il doit lancer. Ce fichier n’existe pas sur notre système, mais nous pouvons utiliser les informations contenues dans ~/.xinitrc
en créant un lien symbolique.
$ ln -s .xinitrc .xsession
Au lancement de XDM, la console graphique xconsole
s’affiche en bas à droite de l’écran. On peut désactiver cette console en éditant /usr/local/lib/X11/xdm/Xsetup_0
et en commentant la ligne qui lance xconsole
.
#!/bin/sh #xconsole -geometry 480x130-0-0 -daemon -notify -verbose ...