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
.
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.
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.
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.
Sur un système avec un GPU NVIDIA qui utilise le pilote noyau Nouveau, vous pourriez parfois rencontrer des crashs du GPU et des freezes. Si ce problème arrive, revenez à la dernière version du noyau Linux 6.1.
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.
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.8 avec le bit suid)
contient des messages comme :
(II) modeset(0): [DRI2] Setup complete
(II) modeset(0): [DRI2] DRI driver: crocus
(II) modeset(0): [DRI2] VDPAU driver: va_gl
Il se peut que la configuration DRI diffère si vous utilisez d'autres pilotes tels que les pilotes DDX traditionnels ou les pilotes propriétaires 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-23.1.6. 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-16.0.5 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.
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, sddm-0.20.0 ou
GDM-44.1) ou
si $XORG_PREFIX/bin/Xorg
a le bit
suid, il se trouvera dans le répertoire /var/log/
.
Quand vous ouvrez Xorg.0.log, cherchez les entrées comme (EE) ou (WW). Voici quelques entrées courantes :
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.
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 pas plus d'une
ancienne carte graphique PCI (et pas PCIe) sur le système, il peut
être ignoré sans problème. Si c'est vraiment nécessaire, 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>
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:modesetting
Provider 1: id: 0x56 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 6 outputs: 1 associated providers: 1 name:modesetting
Pour pouvoir lancer une application GLX sur un GPU particulier, vous devrez lancer la commande suivante, où <provider> est l'identifiant du plus puissant et <sink> est l'identifiant de la carte qui fait l'affichage.
xrandr --setprovideroffloadsink <provider> <sink>
Avec le pilote Xorg modesetting, qui peut 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.
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à.
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).
Si vous voulez configurer la résolution de l'écran pour Xorg, exécutez d'abord xrandr dans un terminal X pour lister les résolutions prises en charge et les taux de rafraîchissement correspondants. Par exemple, voici la sortie pour un écran donné :
Screen 0: minimum 16 x 16, current 5760 x 2160, maximum 32767 x 32767
DP-1 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 600mm x 340mm
3840x2160 59.98*+
2048x1536 59.95
1920x1440 59.90
1600x1200 59.87
1440x1080 59.99
1400x1050 59.98
1280x1024 59.89
1280x960 59.94
1152x864 59.96
1024x768 59.92
800x600 59.86
640x480 59.38
À partir de la sortie, on peut voir que l'écran est identifié
avec DP-1
. Choisissez une résolution
appropriée dans la liste en sortie, par exemple 1920x1440
. Ensuit en tant qu'utilisation
root
, créez un fichier de
configuration pour le serveur Xorg :
cat > /etc/X11/xorg.conf.d/monitor-DP-1.conf << "EOF"
Section "Monitor"
Identifier "DP-1"
Option "PerferredMode" "1920x1440"
EndSection
EOF
Parfois xrandr peut échouer à détecter certains paramètres de résolution pris en charge par l'écran. Cela arrive surtout avec les écrans virtuels des gestionnaires de machines virtuelles comme qemu-8.1.0 ou VMWare : un écran virtuel prend en fait en charge toutes paires d'entier dans un intervalle, mais xrandr n'en indiquera que quelques unes. Pour utiliser une résolution qui n'est pas listée par xrandr, exécutez d'abord cvt pour récupérer la mode line de la résolution. Par exemple :
cvt 1600 900
En tant qu'utilisateur root
,
créez un fichier de configuration du serveur Xorg contenant cette
mode line, et spécifiez ce mode comme étant le mode
préféré :
cat > /etc/X11/xorg.conf.d/monitor-DP-1.conf << "EOF"
Section "Monitor"
Identifier "DP-1"
Modeline "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
Option "PerferredMode" "1600x900_60.00"
EndSection
EOF
Certains écrans LCD haut de gamme prennent en charge un taux de rafraichissement plus important que 100 Hz mais xrandr peut échouer à reconnaître le taux de rafraîchissement pris en charge et utiliser 60 Hz à la place. Ce problème vous empêcherait d'utiliser toutes les capacités de votre écran, et peut causer des clignotements ou afficher des « artéfacts » comme des grilles ou des réseaux. Pour résoudre le problème, utilisez encore cvt pour trouver la mode line avec un taux de rafraîchissement personnalisé :
cvt 3840 2160 144
Puis collez-la dans le fichier de configuration du serveur Xorg et indiquez-la comme mode préféré.
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
Lorsque vous déplacez une fenêtre horizontalement dans twm (ou tout autre gestionnaire de fenêtres sans compositeur), vous observerez peut-être que la bordure verticale de la fenêtre est cassée en de multiples segments. C'est un exemple d'artéfact visuel appelé screen tearing. Pour résoudre ces problèmes, créez un fichier de configuration qui active l'option TearFree. Remarquez que vous devez avoir appliqué le correctif Tearfree de Xorg-Server-21.1.8 pour que cela fonctionne correctement, et il peut augmenter l'allocation mémoire nécessaire et réduire les performances.
cat > /etc/X11/xorg.conf.d/20-tearfree.conf << "EOF"
Section "Device"
Identifier "Graphics Adapter"
Driver "modesetting"
Option "TearFree" "true"
EndSection
EOF
Avec un Xorg moderne, peu ou aucune configuration supplémentaire
de carte graphique n'est nécessaire. Si vous avez besoin
d'options supplémentaires à passer à votre pilote vidéo,
ajoutez-les aussi à la section Device
. Les options prises en charge par le
pilote de gestion des modes sont documentées dans la page de
manuel modesetting(4)
.