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

Before starting Xorg for the first time, is is often needed to reboot the system to ensure all appropriate daemons are started and appropriate security issues are properly set. As an alternative, logging out and logging back in may work, but as of this writing has not been tested.

[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.4 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.1.4. 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.

To confirm that DRI2 hardware acceleration is working, you can (still in the X terminal) run the command glxinfo | grep -E "(OpenGL vendor|OpenGL renderer|OpenGL version)". If that reports something other than Software Rasterizer then you have working acceleration for the user who ran the command.

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-14.0.6 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

When starting xorg, there are a couple of ways to check what any issues you may have. If the system comes up, you can see what driver is being used by running xdriinfo. If there are issues or you just want to check, look at Xorg.0.log.

The location of Xorg.0.log depends on how Xorg is installed. If the instructions in the book are followed closely and Xorg is started from the command line, it will be located in the $HOME/.local/share/xorg/ directory. If Xorg is started by a display manager (e.g. lightdm-1.32.0, lxdm-0.5.3, or GDM-42.0) or if $XORG_PREFIX/libexec/Xorg has the suid bit set, it will be located in the /var/log/ directory.

Problèmes dans Xorg.0.log

When you look at Xorg.0.log, check for entries like (EE) or (WW). Below are some common entries:

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

This warning is becasue acpid-2.0.33 is not installed. If you are not on a laptop, it can be safely ignored. On a laptop, install acpid-2.0.33 to enable actions like recognizing when the lid is closed.

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

This warning is displayed when a regular user starts Xorg. The library libpciaccess.so issues this warning when it tries to open /dev/vga_arbiter. If there is only one video card in the system, it can safely be ignored. If desired, the permissions of this device can be changed by adding a udev rule and adding the local user to the video group. As the root user:

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

This error, accompanied by (EE) AIGLX error: unable to load driver i965, occurs in some systems with Intel based graphics devices. It is caused by a mismatch between the current Xorg-Server-21.1.4 and Mesa-22.1.4. Xorg no longer uses the i965 driver and uses the crocus or iris mesa drivers as indicated by the xdriinfo command. It can safely be ignored.

If desired, this warning can be removed by commenting out lines 330-331 and 337-338 (LogMessage) of glx/glxdricommon.c in the Xorg-Server-21.1.4 package.

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

Last updated on