Xorg-7 Test et configuration

Test de Xorg

[Note]

Note

Avant de démarrer Xorg pour la première fois, il est utile de reconstruire le cache des bibliothèques en lançant ldconfig en tant qu'utilisateur root.

[Note]

Note

Avant de démarrer Xorg pour la première fois, il est souvent nécessaire de redémarrer le système pour s'assurer que les démons appropriés sont démarrés et que les paramètres de sécurités sont correctement initialisés. Autrement, vous déconnecter et vous reconnecter peut fonctionner mais la méthode n'a pas été testée.

[Avertissement]

Avertissement

Si Xorg se bloque (par exemple, s'il lui manque un pilote d'entrée), le système peut arrêter de répondre aux entrées utilisateurs. En précaution, vous pouvez activer la touche SysRq magique avant de tester Xorg. En tant qu'utilisateur root, lancez :

echo 4 > /proc/sys/kernel/sysrq

Si Xorg freeze, vous pouvez utiliser Alt+SysRq+R pour réinitialiser le mode clavier. Maintenant vous devriez pouvoir utiliser Ctrl+Alt+Fx (remplacez x par un numéro de terminal virtuel) pour passer à un autre VT. Si cela fonctionne, connectez-vous et tuez Xorg via la ligne de commande dans le nouveau VT.

Pour tester l'installation de Xorg, tapez startx. Cette commande lance un gestionnaire de fenêtres très rudimentaire appelé twm avec trois terminaux X (xterm) et une fenêtre d'horloge (xclock). Le terminal X dans le coin supérieur gauche est un terminal de login et lancer exit dans le terminal quittera la session X Window. Le troisième terminal X peut être recouvert sur votre système par les deux autres terminaux X.

[Note]

Note

Lorsque vous testez Xorg avec le gestionnaire de fenêtres twm, il y aura plusieurs avertissements dans le fichier de log de Xorg, $HOME/.local/share/xorg/Xorg.0.log à propos de fichiers de police manquants. En plus, il y a plusieurs avertissement sur le terminal en mode texte (habituellement tty1) à propos de polices manquantes. Ces avertissements n'affectent pas le fonctionnement, mais peuvent être supprimés si désiré en installant Anciennes polices de Xorg.

Généralement, il n'y a pas de configuration spécifique requise pour Xorg, mais une personnalisation est possible. Pour plus de détails voir la section intitulée « Configuration des périphériques Xorg » en dessous.

Vérifier l'installation de la Direct Rendering Infrastructure (DRI)

DRI est un environnement permettant aux logiciels d'accéder au matériel graphique d'une manière sûre et efficace. Elle est installée par défaut dans X (en utilisant MesaLib) si vous avez une carte graphique supportée.

Pour vérifier que les pilotes DRI sont correctement installés, vérifiez que le fichier journal $HOME/.local/share/xorg/Xorg.0.log (ou /var/log/Xorg.0.log si vous avez construit Xorg-Server-21.1.7 avec le bit suid) contient des messages comme :

(II) intel(0): direct rendering: DRI2 Enabled

ou

(II) NOUVEAU(0): Loaded DRI module
[Note]

Note

Il se peut que la configuration DRI diffère si vous utilisez d'autres pilotes tels que ceux de NVIDIA ou de AMD.

Une autre façon de déterminer si DRI fonctionne proprement est d'utiliser un des deux programmes de démo d'OpenGL installés éventuellement par Mesa-22.3.5. Depuis un terminal X, lancez glxinfo et cherchez le passage :

name of display: :0
display: :0  screen: 0
direct rendering: Yes

Si le direct rendering est activé, vous pouvez ajouter de la verbosité en lançant LIBGL_DEBUG=verbose glxinfo. Ceci affichera les pilotes, les nœuds de périphériques et les fichiers utilisés par le système DRI.

Pour confirmer que l'accélération matérielle DRI2 fonctionne, vous pouvez (toujours dans un terminal X) lancer la commande glxinfo | grep -E "(OpenGL vendor|OpenGL renderer|OpenGL version)". Si cela renvoie quelque chose d'autre que Software Rasterizer c'est que l'accélération fonctionne pour l'utilisateur qui a lancé la commande.

Si votre matériel n'a pas de pilote DRI2 de disponible, il utilisera un rendu logiciel pour le Direct Rendering. Dans ce cas, vous pouvez utiliser le nouveau rendu logiciel accéléré de LLVM appelé LLVMPipe. Avant de construire LLVMPipe soyez certain que LLVM-15.0.7 est présent au moment de la construction de Mesa. Merci de noter que tous les décodages sont fait par le processeur à la place du GPU, donc l'affichage sera plus lent qu'avec l'accélération matérielle. Pour vérifier si vous utilisez LLVMpipe, regardez la sortie de la commande glxinfo précédente. Un exemple de sortie utilisant le rendu logiciel est montré en dessous :

OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.5, 256 bits)
OpenGL version string: 3.0 Mesa 10.4.5

Vous pouvez toujours forcer LLVMPipe en exportant la variable d'environnement LIBGL_ALWAYS_SOFTWARE=1 quand vous démarré Xorg.

De nouveau, si vous avez ajouté le paquet Mesa-Demos, vous pouvez aussi lancer le programme de test glxgears. Ce programme affiche une fenêtre de trois boutons à bascule. Le xterm affichera le nombre de cadres dessinés toutes les cinq secondes, donc c'est un test fiable. La fenêtre est redimensionnable et les cadres dessinés par secondes dépendent beaucoup de la taille de la fenêtre.

Débogage de Xorg

Lorsque vous démarrez xorg, il y a plusieurs moyens de vérifier les problèmes que vous pourriez avoir. Si le système démarre, vous pouvez voir le pilote utilisé en lançant xdriinfo. Si vous avez des problèmes ou souhaitez seulement vérifier, regardez dans Xorg.0.log.

L'emplacement de Xorg.0.log dépend de la manière dont Xorg est installé. Si vous avez suivi précisément les instructions du livre et que Xorg est démarré en ligne de commande, il se trouvera dans le répertoire $HOME/.local/share/xorg/. Si Xorg est démarré par un gestionnaire d'affichage (p. ex. lightdm-1.32.0, lxdm-0.5.3 ou GDM-43.0) ou si $XORG_PREFIX/libexec/Xorg a le bit suid, il se trouvera dans le répertoire /var/log/.

Problèmes dans Xorg.0.log

Quand vous ouvrez Xorg.0.log, cherchez les entrées comme (EE) ou (WW). Voici quelques entrées courantes :

(WW) Open ACPI failed (/var/run/acpid.socket)

Cet avertissement a pour origine le fait qu'acpid-2.0.34 n'est pas installé. Si vous n'êtes pas sur un ordinateur portable, il peut être ignoré sans problème. Sur un ordinateur portable, installez acpid-2.0.34 pour activer les actions comme la reconnaissance de la fermeture de l'écran.

(WW) VGA arbiter: cannot open kernel arbiter, no multi-card support

Cet avertissement est affiché quand un utilisateur normal démarre Xorg. La bibliothèque libpciaccess.so lance cet avertissement quand elle essaye d'ouvrir /dev/vga_arbiter. S'il n'y a qu'une seule carte vidéo sur le système, il peut être ignoré sans problème. Si vous le souhaitez, les permissions pour ce périphérique peuvent être changées avec une règle udev et en ajoutant l’utilisateur local au groupe video. En tant qu'utilisateur root :

cat > /etc/udev/rules.d/99-vga-arbiter.rules << EOF
# /etc/udev/rules.d/99-vga-arbiter.rules: Set vga_arbiter group/mode

ACTION=="add", KERNEL=="vga_arbiter", GROUP="video" MODE="0660"
EOF

usermod -a -G video <user running xorg>
(EE) AIGLX error: dlopen of /opt/xorg/lib/dri/i965_dri.so failed

Cette erreur, accompagnée par (EE) AIGLX error: unable to load driver i965, arrive sur certains systèmes avec des périphériques graphiques basés sur Intel. Elle est causée par une incompatibilité entre le Xorg-Server-21.1.7 actuel et Mesa-22.3.5. Xorg n'utilise plus le pilote i965 et utilise les pilotes crocus ou iris comme indiqué par la commande xdriinfo. Elle peut être ignorée sans problème.

Si vous le souhaite, cet avertissement peut être supprimé en commentant les lignes 330-331 et 337-338 (LogMessage) de glx/glxdricommon.c dans le paquet Xorg-Server-21.1.7.

Hybrid Graphics

Hybrid Graphics est expérimental dans Linux. Les développeurs de Xorg ont mis au point une technologie appelé PRIME qui peut être utilisée pour commuter entre le GPU intégré et celui du processeur "muxless" à souhait. La commutation automatique n'est pas possible pour le moment.

Pour utiliser PRIME pour la commutation de GPU, soyez certain d'utiliser le noyau Linux 3.4 ou plus (recommandé). Vous devez avoir les pilotes DRI et DDX pour votre matériel et avoir Xorg Server 1.13 ou plus.

Xorg Server devrait charger les deux pilotes GPU automatiquement. Vous pouvez le vérifier en lançant :

xrandr --listproviders

Il devrait y avoir deux (ou plus) fournisseurs indiqués, par exemple :

Providers: number : 2
Provider 0: id: 0x7d cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 3 outputs: 4 associated providers: 1 name:Intel
Provider 1: id: 0x56 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 6 outputs: 1 associated providers: 1 name:radeon

Pour pouvoir lancer une application GLX sur un GPU particulier, vous devrez lancer la commande suivante, où <provider> est le plus puissant et <sink> est la carte qui fait l'affichage.

xrandr --setprovideroffloadsink <provider> <sink>
[Note]

Note

Avec les nouveaux pilotes Xorg, comme modesetting ou intel, qui peuvent utiliser DRI3, la commande ci-dessus n'est plus nécessaire. Ça ne fait pas de mal non plus.

Ensuite, vous devrez exporter la variable d'environnement DRI_PRIME=1 à chaque fois que vous voudrez utiliser le GPU le plus puissant. Par exemple,

DRI_PRIME=1 glxinfo | grep -E "(OpenGL vendor|OpenGL renderer|OpenGL version)"

affichera le fournisseur OpenGL, le rendu et la version du GPU.

Si la dernière commande affiche le même rendu OpenGL avec ou sans DRI_PRIME=1, vous devez vérifier votre installation.

Configuration des périphériques Xorg

Pour la plupart des configurations matérielles, Xorg va automatiquement obtenir la configuration correcte du serveur sans aucune intervention de l'utilisateur. Il existe cependant certains cas où l'auto-configuration sera incorrecte. Voici quelques exemples de la configuration manuelle qui peuvent être utile dans ces cas-là.

Configuration des périphériques X d'entrée

Pour la plupart des périphériques d'entrée, aucune configuration supplémentaire ne sera nécessaire. Cette section est fournie à titre informatif seulement.

Un exemple de configuration XKB par défaut peut être celui-ci (exécuté en tant que root) :

cat > /etc/X11/xorg.conf.d/xkb-defaults.conf << "EOF"
Section "InputClass"
    Identifier "XKB Defaults"
    MatchIsKeyboard "yes"
    Option "XkbLayout" "fr"
    Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection
EOF

La ligne « XkbLayout » est un exemple pour un clavier français (AZERTY). Modifiez-la pour votre modèle de clavier. Cette ligne n'est pas utile pour un clavier QWERTY (US).

Réglage fin des paramètres d'affichage

Encore une fois, avec Xorg, peu ou aucune configuration supplémentaire n'est nécessaire. Si vous avez besoin d'options supplémentaires à passer à votre pilote vidéo, par exemple, vous pouvez utiliser ce qui suit (de nouveau, exécuté en tant que root) :

cat > /etc/X11/xorg.conf.d/videocard-0.conf << "EOF"
Section "Device"
    Identifier  "Videocard0"
    Driver      "radeon"
    VendorName  "Videocard vendor"
    BoardName   "ATI Radeon 7500"
    Option      "NoAccel" "true"
EndSection
EOF

Une autre configuration courante est d'avoir des configurations multi-serveurs pour une utilisation dans des environnements différents. Bien que le serveur détecte automatiquement la présence d'un autre moniteur, il peut obtenir un ordre incorrect :

cat > /etc/X11/xorg.conf.d/server-layout.conf << "EOF"
Section "ServerLayout"
    Identifier     "DefaultLayout"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" LeftOf "Screen0"
    Option         "Xinerama"
EndSection
EOF