Xorg (Français)

From ArchWiki
(Redirected from Système X Window)
État de la traduction: Cet article est la version francophone de Xorg. Date de la dernière traduction: 2022-10-03. Vous pouvez aider à synchroniser la traduction s'il y a eu des changements dans la version anglaise.

Selon https://www.x.org/wiki/ :

Le projet X.Org fournit une implémentation open source du X Window System. Le travail de développement est réalisé en collaboration avec la communauté freedesktop.org. La Fondation X.Org est une société éducative à but non lucratif dont le conseil d'administration est au service de cet effort et dont les membres dirigent ce travail.

Xorg (communément appelé simplement X) est le serveur d'affichage le plus populaire parmi les utilisateurs de Linux. Son omniprésence a conduit à en faire un élément indispensable pour les applications d'interface graphique, ce qui a entraîné une adoption massive de la plupart des distributions. Consultez l'article Xorg. Wikipedia ou visitez le Xorg website pour plus de détails.

Pour l'alternative et le successeur potentiel, renseignez-vous sur Wayland.

Installation

Xorg peut être installé avec le paquet xorg-server.

De plus, certains paquets du groupe xorg-apps sont nécessaires pour certaines tâches de configuration. Ils sont signalés dans les sections correspondantes.

Enfin, un groupe xorg est également disponible, qui inclut les paquets du serveur Xorg, les paquets du groupe xorg-apps et les polices.

Installation des pilotes

Le noyau Linux comprend des pilotes vidéo à source ouverte et prend en charge les framebuffers accélérés par le matériel. Cependant, la prise en charge en espace utilisateur est nécessaire pour OpenGL et l'accélération 2D dans X11.

Tout d'abord, identifiez la carte graphique (la sortie Subsystem indique le modèle spécifique) :

$ lspci -v | grep -A1 -e VGA -e 3D

Ensuite, installez un pilote approprié. Vous pouvez consulter la base de données des paquets pour obtenir une liste complète des pilotes vidéo open-source :

$ pacman -Ss xf86-video

Xorg recherche automatiquement les pilotes installés :

  • S'il ne trouve pas le pilote spécifique installé pour le matériel (listé ci-dessous), il recherche d'abord fbdev (xf86-video-fbdev) qui n'inclue aucune accélération 2D ou 3D.
  • S'il ne le trouve pas, il recherche vesa (xf86-video-vesa), le pilote générique, qui gère un grand nombre de chipsets mais n'inclut pas d'accélération 2D ou 3D.
  • Si vesa n'est pas trouvé, Xorg se rabattra sur le kernel mode setting, qui inclut l'accélération GLAMOR (consultez modesetting(4)).

Pour que l'accélération vidéo fonctionne, et souvent pour exposer tous les modes que le GPU peut définir, un pilote vidéo approprié est nécessaire :

Marque Type Driver OpenGL OpenGL (multilib) Documentation
AMD / ATI Libre xf86-video-amdgpu mesa lib32-mesa AMDGPU
xf86-video-ati ATI
Propriétaire xf86-video-amdgpu amdgpu-pro-oglpAUR lib32-amdgpu-pro-oglpAUR AMDGPU PRO
Intel Libre xf86-video-intel1 mesa lib32-mesa Intel graphics
NVIDIA Libre xf86-video-nouveau mesa lib32-mesa Nouveau2
Propriétaire nvidia nvidia-utils lib32-nvidia-utils NVIDIA2
nvidia-470xx-dkmsAUR nvidia-470xx-utilsAUR lib32-nvidia-470xx-utilsAUR
nvidia-390xx-dkmsAUR nvidia-390xx-utilsAUR lib32-nvidia-390xx-utilsAUR
  1. Pour les cartes graphiques Intel de 4ème génération et plus, consultez Intel graphics (Français)#Installation pour connaître les pilotes disponibles.
  2. Pour les ordinateurs portables équipés de NVIDIA Optimus qui utilisent une carte vidéo intégrée combinée à un GPU dédié, consultez NVIDIA Optimus.

D'autres pilotes vidéo peuvent être trouvés dans le groupe xorg-drivers.

Xorg devrait fonctionner sans problème sans pilotes à source fermée, qui ne sont généralement nécessaires que pour les fonctionnalités avancées telles que le rendu rapide en 3D pour les jeux. Les exceptions à cette règle sont les GPU récents (en particulier les GPU NVIDIA) qui ne sont pas pris en charge par les pilotes open source.

AMD

Pour une traduction des noms de modèles (par exemple, Radeon RX 6800) en architectures de GPU (par exemple, RDNA 2), consultez wikipedia:List of AMD graphics processing units.

GPU architecture Open-source driver Proprietary driver
RDNA, RDNA 2 AMDGPU AMDGPU PRO
GCN 3, GCN 4, GCN 5
GCN 1, GCN 2 AMDGPU* / ATI non disponible
TeraScale
et antérieur
ATI non disponible
* : Expérimental

Exécution

La commande Xorg(1) n'est généralement pas exécutée directement. Au lieu de cela, le serveur X est lancé avec un gestionnaire d'affichage ou xinit.

Astuce: Vous chercherez généralement à installer un gestionnaire de fenêtres ou un environnement de bureau en complément de X.

Configuration

Note: Arch fournit des fichiers de configuration par défaut dans /usr/share/X11/xorg.conf.d/, et aucune configuration supplémentaire n'est nécessaire pour la plupart des installations.

Xorg utilise un fichier de configuration appelé xorg.conf et des fichiers se terminant par le suffixe .conf pour sa configuration initiale : la liste complète des dossiers dans lesquels ces fichiers sont recherchés se trouve dans xorg.conf(5), ainsi qu'une explication détaillée de toutes les options disponibles.

Utilisation des fichiers .conf

Le répertoire /etc/X11/xorg.conf.d/ stocke la configuration spécifique à l'hôte. Vous êtes libre d'y ajouter des fichiers de configuration, mais ils doivent avoir un suffixe .conf : les fichiers sont lus dans l'ordre ASCII, et par convention, leurs noms commencent par XX- (deux chiffres et un trait d'union, de sorte que par exemple 10 est lu avant 20). Ces fichiers sont analysés par le serveur X au démarrage et sont traités comme une partie du fichier de configuration traditionnel xorg.conf. Notez qu'en cas de conflit de configuration, le fichier lu en dernier sera conservé. Pour cette raison, les fichiers de configuration les plus génériques devraient être classés en premier par nom. Les entrées de configuration dans le fichier xorg.conf sont traitées à la fin.

Pour des exemples d'options à définir, consultez Fedora:Input device configuration#xorg.conf.d.

Utilisation de xorg.conf

Xorg peut également être configuré via /etc/X11/xorg.conf ou /etc/xorg.conf. Vous pouvez également générer un squelette pour xorg.conf avec :

# Xorg :0 -configure

Cela devrait créer un fichier xorg.conf.new dans /root/ que vous pouvez copier dans /etc/X11/xorg.conf.

Astuce: Si vous exécutez déjà un serveur X, utilisez un affichage différent, par exemple Xorg :2 -configure.

Il se peut également que les pilotes de votre carte vidéo propriétaire soient fournis avec un outil permettant de configurer automatiquement Xorg : consultez l'article de votre pilote vidéo, NVIDIA ou AMDGPU PRO, pour plus de détails.

Note: Les mots-clés des fichiers de configuration ne sont pas sensibles à la casse, et les caractères "_" sont ignorés. La plupart des chaînes de caractères (y compris les noms d'option) sont également insensibles à la casse, aux espaces et aux caractères "_".

Périphériques d'entrée

Pour les périphériques d'entrée, le serveur X utilise par défaut le pilote libinput (xf86-input-libinput), mais xf86-input-evdev et les pilotes associés sont disponibles comme alternative. [1]

Udev, qui est fourni comme dépendance de systemd, détectera le matériel et les deux pilotes agiront comme pilote d'entrée à chaud pour presque tous les périphériques, comme défini dans les fichiers de configuration par défaut 10-quirks.conf et 40-libinput.conf dans le répertoire /usr/share/X11/xorg.conf.d/.

Après le démarrage du serveur X, le fichier journal indiquera quel pilote a été branché à chaud pour les différents périphériques (notez que le nom du fichier journal le plus récent peut varier) :

$ grep -e "Using input driver " Xorg.0.log

Si les deux ne prennent pas en charge un périphérique particulier, installez le pilote nécessaire à partir du groupe xorg-drivers. La même chose s'applique si vous voulez utiliser un autre pilote.

Pour influencer le hotplugging, consultez #Configuration.

Pour des instructions spécifiques, consultez également l'article libinput, les pages suivantes ci-dessous, ou Fedora:Input device configuration pour plus d'exemples.

Identification de l'entrée

Consultez Keyboard input#Identifying keycodes in Xorg.

Accélération de la souris

Consultez Mouse acceleration.

Boutons de souris supplémentaires

Consultez Mouse buttons.

Touchpad

Consultez libinput ou Synaptics.

Écran tactile

Consultez Touchscreen.

Paramètres du clavier

Consultez Configuration du clavier dans Xorg.

Paramètres du moniteur

Configuration manuelle

Note:
  • Les versions récentes d'Xorg sont auto-configurées, donc la configuration manuelle ne devrait pas être nécessaire.
  • Si Xorg est incapable de détecter un moniteur ou pour éviter l'auto-configuration, un fichier de configuration peut être utilisé. Un cas courant où cela est nécessaire est un système headless, qui démarre sans moniteur et lance Xorg automatiquement, soit à partir d'une console virtuelle à la connexion, soit à partir d'un gestionnaire d'affichage.

Pour une configuration headless, le pilote xf86-video-dummy est nécessaire ; installez-le et créez un fichier de configuration, tel que le suivant :

/etc/X11/xorg.conf.d/10-headless.conf
Section "Monitor"
        Identifier "dummy_monitor"
        HorizSync 28.0-80.0
        VertRefresh 48.0-75.0
        Modeline "1920x1080" 172.80 1920 2040 2248 2576 1080 1081 1084 1118
EndSection

Section "Device"
        Identifier "dummy_card"
        VideoRam 256000
        Driver "dummy"
EndSection

Section "Screen"
        Identifier "dummy_screen"
        Device "dummy_card"
        Monitor "dummy_monitor"
        SubSection "Display"
        EndSubSection
EndSection

Moniteurs multiples

Consultez l'article principal Multihead pour des informations générales.

Consultez également les instructions spécifiques aux GPU :

Plus d'une carte graphique

Vous devez définir le bon pilote à utiliser et mettre l'ID de bus de vos cartes graphiques (en notation décimale).

Section "Device"
    Identifier             "Screen0"
    Driver                 "intel"
    BusID                  "PCI:0:2:0"
EndSection

Section "Device"
    Identifier             "Screen1"
    Driver                 "nouveau"
    BusID                  "PCI:1:0:0"
EndSection

Pour obtenir vos identifiants de bus (en hexadécimal) :

$ lspci | grep -e VGA -e 3D
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04)
01:00.0 3D controller: NVIDIA Corporation GP107M [GeForce GTX 1050 Mobile] (rev a1)

Les ID de bus sont ici 0:2:0 et 1:0:0.

Taille de l'écran et DPI

Par défaut, Xorg définit toujours le DPI à 96 depuis 2009 (consultez [2]). Une modification a été apportée à la version 21.1 pour permettre une auto-détection correcte de la DPI, mais elle a été annulée (consultez FS#72661).

Le DPI du serveur X peut être définie avec l'option de ligne de commande -dpi.

Il est utile d'avoir le bon DPI lorsque des détails fins sont nécessaires (comme le rendu des polices). Auparavant, les fabricants essayaient de créer une norme pour 96 DPI (un écran de 10,3 pouces de diagonale serait 800x600, un écran de 13,2 pouces 1024x768). De nos jours, les DPI des écrans varient et peuvent ne pas être égaux horizontalement et verticalement. Par exemple, un écran large LCD 19" de 1440x900 peut avoir un DPI de 89x87.

Pour consulter si la taille de votre écran et le DPI sont correct :

$ xdpyinfo | grep -B2 resolution

Vérifiez que les dimensions correspondent à la taille de votre écran.

Si vous avez des spécifications sur la taille physique de l'écran, vous pouvez les entrer dans le fichier de configuration Xorg afin que le DPI approprié soit calculé (ajustez l'identifiant à votre sortie xrandr) :

Section "Monitor"
    Identifier             "DVI-D-0"
    DisplaySize             286 179    # In millimeters
EndSection

Si vous voulez seulement entrer les spécifications de votre moniteur sans créer un xorg.conf complet, créez un nouveau fichier de configuration. Par exemple (/etc/X11/xorg.conf.d/90-monitor.conf) :

Section "Monitor"
    Identifier             "<default monitor>"
    DisplaySize            286 179    # In millimeters
EndSection
Note: Si vous utilisez le pilote propriétaire NVIDIA, vous devrez peut-être mettre Option "UseEdidDpi" "FALSE" sous la section Device ou Screen pour qu'elle prenne effet.

Si vous ne disposez pas de spécifications pour la largeur et la hauteur physiques de l'écran (la plupart des spécifications actuelles ne mentionnent que la taille diagonale), vous pouvez utiliser la résolution native du moniteur (ou le rapport hauteur/largeur) et la longueur diagonale pour calculer les dimensions physiques horizontales et verticales. En utilisant le théorème de Pythagore sur un écran de 13,3 pouces de diagonale avec une résolution native de 1280x800 (ou un rapport d'aspect de 16:10) :

$ echo 'scale=5;sqrt(1280^2+800^2)'. | bc # 1509.43698

Cela donnera la longueur diagonale du pixel et avec cette valeur vous pouvez découvrir les longueurs physiques horizontale et verticale (et les convertir en millimètres) :

$ echo 'scale=5 ;(13.3/1509)*1280*25.4'. | bc # 286.43072
$ echo 'scale=5 ;(13.3/1509)*800*25.4'.  | bc # 179.01920
Note: Ce calcul fonctionne pour les moniteurs à pixels carrés ; cependant, il existe de rares moniteurs qui peuvent comprimer le rapport d'aspect (par exemple, une résolution d'aspect 16:10 sur un moniteur 16:9). Si tel est le cas, vous devez mesurer manuellement la taille de votre écran.

Réglage manuel du DPI

Note: Bien que vous puissiez définir n'importe quel nombre de ppp et que les applications utilisant Qt et GTK s'adapteront en conséquence, il est recommandé de le définir à 96, 120 (25 % plus élevé), 144 (50 % plus élevé), 168 (75 % plus élevé), 192 (100 % plus élevé), etc. afin de réduire les artefacts de mise à l'échelle pour les interfaces graphiques qui utilisent des bitmaps. La réduction en dessous de 96 dpi peut ne pas réduire la taille des éléments graphiques de l'interface graphique, car le dpi le plus bas pour lequel les icônes sont faites est généralement 96.

Pour les pilotes compatibles avec RandR (par exemple le pilote open source ATI), vous pouvez le définir par :

$ xrandr --dpi 144
Note: Les applications qui respectent ce paramètre ne changeront pas immédiatement. Vous devez les relancer à nouveau.

Pour le rendre permanent, consultez Autostarting#On Xorg startup.

Pilote propriétaire NVIDIA

Vous pouvez définir manuellement le DPI en ajoutant l'option sous la section Device ou Screen :

Option "DPI" "96 x 96"
Mise en garde concernant le réglage manuel du DPI

GTK remplace très souvent le DPI du serveur par la ressource X facultative Xft.dpi. Pour savoir si cela se produit dans votre cas, vérifiez avec :

$ xrdb -query | grep dpi

Avec les versions de la bibliothèque GTK depuis 3.16, lorsque cette variable n'est pas explicitement définie, GTK la définit à 96. Pour que les applications GTK obéissent au DPI du serveur, vous pouvez avoir besoin de définir explicitement Xft.dpi à la même valeur que le serveur. La ressource Xft.dpi est la méthode par laquelle certains environnements de bureau forcent optionnellement le DPI à une valeur particulière dans les paramètres personnels. Parmi ceux-ci figurent KDE et TDE.

Display Power Management Signaling

DPMS (Gestion de la puissance d'affichage) est une technologie qui permet d'économiser l'énergie des moniteurs lorsque l'ordinateur n'est pas utilisé. Vous pourrez ainsi faire en sorte que vos moniteurs se mettent automatiquement en veille après une période de temps prédéfinie.

Compositeur

L'extension Composite pour X permet de rendre un sous-arbre entier de la hiérarchie des fenêtres dans un tampon hors écran. Les applications peuvent alors prendre le contenu de ce tampon et faire ce qu'elles veulent. La mémoire tampon hors écran peut être automatiquement fusionnée avec la fenêtre parent, ou fusionnée par des programmes externes appelés gestionnaires de composition. Pour plus d'informations, consultez Wikipedia:fr:Compositeur (logiciel).

Certains gestionnaires de fenêtres (par exemple Compiz, Enlightenment, KWin, Marco, Metacity, Muffin, Mutter, Xfwm) font la composition eux-mêmes. Pour les autres gestionnaires de fenêtres, un gestionnaire composite autonome peut être utilisé.

Liste des gestionnaires de composites

  • Picom — Compositeur (un fork de Compton)
https://github.com/yshui/picom || picom
  • Xcompmgr — Compositeur d'effets de fenêtre
https://gitlab.freedesktop.org/xorg/app/xcompmgr/ || xcompmgr
  • steamos-compositor-plus — Le compositeur de Valve, avec quelques modifications et corrections supplémentaires.
https://github.com/chimeraos/steamos-compositor-plus || steamos-compositor-plusAUR

Trucs et astuces

Automatisation

Cette section liste les utilitaires permettant d'automatiser les entrées clavier/souris et les opérations sur les fenêtres (comme le déplacement, le redimensionnement ou l'élévation).

Outil Paquet Manuel Saisie de
Keysym
Opérations
sur les fenêtres
Note
xautomation xautomation xte(1) Oui Non Contient également des outils de lecture d'écran. Ne peut pas simuler F13 et plus.
xdo xdo xdo(1) Non Oui Petit utilitaire X permettant d'effectuer des actions élémentaires sur les fenêtres.
xdotool xdotool xdotool(1) Oui Oui Très bogué et pas en développement actif, par exemple : interpréteur de ligne de commande cassé. [3] [4]
xvkbd xvkbdAUR xvkbd(1) Oui Non Clavier virtuel pour Xorg, possède également l'option -text pour l'envoi de caractères.
AutoKey autokey-qtAUR autokey-gtkAUR documentation Oui Oui Utilitaire de macro et de script puissant, de plus haut niveau, avec des interfaces Qt et Gtk.

Consultez également Clipboard#Tools et un aperçu des outils d'automatisation de X.

Session X imbriquée

Pour exécuter une session imbriquée d'un autre environnement de bureau :

$ /usr/bin/Xnest :1 -geometry 1024x768+0+0 -ac -name Windowmaker & wmaker -display :1

Ceci lancera une session Window Maker dans une fenêtre de 1024 par 768 dans votre session X actuelle.

Ceci nécessite l'installation du paquet xorg-server-xnest.

Une façon plus moderne de faire une session X imbriquée est avec Xephyr.

Démarrer une application sans gestionnaire de fenêtres

Consultez xinit (Français)#Démarrer des applications sans gestionnaire de fenêtres.

Démarrer des programmes GUI à distance

Consultez l'article principal : OpenSSH (Français)#Déport d'affichage X11.

Désactivation et activation à la demande des sources d'entrée

Avec l'aide de xinput vous pouvez temporairement désactiver ou activer les sources d'entrée. Cela peut être utile, par exemple, sur les systèmes qui possèdent plus d'une souris, comme les ThinkPads, et vous préférez n'en utiliser qu'une seule pour éviter les clics de souris indésirables.

Installez le paquet xorg-xinput.

Trouvez le nom ou l'ID du périphérique que vous voulez désactiver :

$ xinput

Par exemple, sur un Lenovo ThinkPad T500, la sortie ressemble à ceci :

$ xinput
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     id=11   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=10   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=9    [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=12   [slave  keyboard (3)]

Désactivez le périphérique avec xinput --disable device, où device est l'ID ou le nom du périphérique que vous souhaitez désactiver. Dans cet exemple, nous allons désactiver le Touchpad Synaptics, avec l'ID 10 :

$ xinput --disable 10

Pour réactiver le périphérique, il suffit de lancer la commande inverse :

$ xinput --enable 10

Alternativement en utilisant le nom du périphérique, la commande pour désactiver le touchpad serait :

$ xinput --disable "SynPS/2 Synaptics TouchPad" (en anglais)

Tuer une application avec un raccourci clavier

Exécutez le script suivant avec un raccourci clavier :

#!/bin/sh
windowFocus=$(xdotool getwindowfocus)
pid=$(xprop -id "$windowFocus" | grep PID)
kill -9 "$pid"

Dépendances : xorg-xprop, xdotool

Consultez également #Tuer une application visuellement

Bloquer l'accès au TTY

Pour bloquer l'accès au tty lorsque vous êtes dans un X, ajoutez ce qui suit à xorg.conf :

Section "ServerFlags"
    Option "DontVTSwitch" "True"
EndSection

Ceci peut être utilisé pour aider à restreindre l'accès à la ligne de commande sur un système accessible à des utilisateurs non fiables.

Empêcher un utilisateur de tuer X

Pour empêcher un utilisateur de tuer X lorsqu'il est en cours d'exécution, ajoutez ce qui suit à xorg.conf :

Section "ServerFlags"
    Option "DontZap"      "True"
EndSection
Note: Le raccourci Ctrl+Alt+Backspace n'est pas directement ce qui déclenche l'arrêt du serveur X, mais l'action Terminate_Server de la keymap. Cette action n'est généralement pas définie par défaut, consultez Xorg (Français)/Keyboard configuration (Français)#Terminer Xorg avec Ctrl+Alt+Backspace.

Tuer une application visuellement

Lorsqu'une application se comporte mal ou est bloquée, au lieu d'utiliser kill ou killall depuis un terminal et de devoir trouver l'ID ou le nom du processus, xorg-xkill permet de cliquer sur ladite application pour fermer sa connexion au serveur X. De nombreuses applications existantes s'interrompent effectivement lorsque leur connexion au serveur X est fermée, mais certaines peuvent choisir de continuer.

Xorg sans root

Xorg peut s'exécuter avec les privilèges d'un utilisateur standard au lieu de ceux de root (ce qu'on appelle Xorg «rootless»). Il s'agit d'une amélioration significative de la sécurité par rapport à l'exécution en tant que root. Notez que certains gestionnaires d'affichage populaires ne prennent pas en charge Xorg «rootless» (par exemple LightDM ou XDM).

Vous pouvez vérifier sous quel utilisateur Xorg est exécuté avec ps -o user $(pgrep Xorg).

Consultez également Xorg.wrap(1), systemd-logind(8), Systemd (Français)/User (Français)#Xorg comme service utilisateur systemd, Fedora:Changes/XorgWithoutRootRights et FS#41257.

Avec xinitrc

Pour configurer Xorg «rootless» en utilisant xinitrc :

  • Exécutez startx comme un sous-processus du shell de connexion ; exécutez startx directement et n'utilisez pas exec startx.
  • Assurez-vous que Xorg utilise le terminal virtuel pour lequel les permissions ont été définies, c'est à dire passées par logind dans $XDG_VTNR via .xserverrc.
  • Si vous utilisez certains pilotes d'affichage propriétaires, l'auto-détection du kernel mode setting échouera. Dans ce cas, vous devez définir needs_root_rights = no dans /etc/X11/Xwrapper.config.

Avec GDM

GDM exécutera Xorg sans privilèges root par défaut lorsque kernel mode setting est utilisé.

Redirection du journal de session

Lorsque Xorg est exécuté en mode sans root, les journaux Xorg sont enregistrés dans ~/.local/share/xorg/Xorg.log. Cependant, les sorties stdout et stderr de la session Xorg ne sont pas redirigées vers ce journal. Pour réactiver la redirection, démarrez Xorg avec le paramètre -keeptty et redirigez les sorties stdout et stderr vers un fichier :

startx -- -keeptty >~/.xorg.log 2>&1

Alternativement, copiez /etc/X11/xinit/xserverrc dans ~/.xserverrc, et ajoutez -keeptty. Consultez [5].

Xorg en root

Comme expliqué ci-dessus, il y a des circonstances dans lesquelles Xorg sans root est utilisé par défaut. Si c'est le cas pour votre configuration, et que vous avez besoin d'exécuter Xorg en tant que root, vous pouvez configurer Xorg.wrap(1) pour exiger root :

Attention: L'exécution d'Xorg en tant que root pose des problèmes de sécurité. Consultez #Xorg sans root pour plus de précisions.
/etc/X11/Xwrapper.config
needs_root_rights = yes

Dépannage

Général

Si un problème survient, consultez le journal stocké soit dans /var/log/ ou, pour le système X «rootless» par défaut depuis la v1.16, dans ~/.local/share/xorg/. Les utilisateurs de GDM devraient consulter le journal de systemd. [6]

Les fichiers journaux sont de la forme Xorg.n.log avec n étant le numéro d'affichage. Pour une machine mono-utilisateur avec la configuration par défaut, le journal applicable est fréquemment Xorg.0.log, mais autrement cela peut varier. Pour être sûr de choisir le bon fichier, il peut être utile de regarder l'horodatage du démarrage de la session du serveur X et la console à partir de laquelle elle a été lancée. Par exemple :

$ grep -e Log -e tty Xorg.0.log
[    40.623] (==) Log file: "/home/archuser/.local/share/xorg/Xorg.0.log", Time: Thu Aug 28 12:36:44 2014
[    40.704] (--) controlling tty is VT number 1, auto-enabling KeepTty
  • Dans le fichier journal, soyez à l'affût de toute ligne commençant par (EE), qui représente des erreurs, et aussi (WW), qui sont des avertissements pouvant indiquer d'autres problèmes.
  • S'il existe un fichier .xinitrc vide dans votre $HOME, supprimez-le ou modifiez-le pour que X puisse démarrer correctement. Si vous ne le faites pas, X affichera un écran vide avec ce qui semble être des erreurs dans votre Xorg.0.log. En le supprimant simplement, vous obtiendrez un environnement X par défaut.
  • Si l'écran devient noir, vous pouvez toujours essayer de basculer vers une console virtuelle différente (par exemple Ctrl+Alt+F6), et vous connecter aveuglément en tant que root. Vous pouvez le faire en tapant root (appuyez sur Enter après l'avoir tapé) et en saisissant le mot de passe root (appuyez à nouveau sur Enter après l'avoir tapé).
Vous pouvez également tenter de tuer le serveur X avec :
# pkill -x X
Si cela ne fonctionne pas, redémarrez en aveugle avec :
# reboot
  • Vérifiez les pages spécifiques dans Category:Input devices si vous avez des problèmes avec le clavier, la souris, le touchpad, etc.
  • Recherchez les problèmes courants dans les articles de ATI, Intel et NVIDIA.

Écran noir, Aucun protocole spécifié, Ressource temporairement indisponible pour tous ou certains utilisateurs

X crée des fichiers de configuration et des fichiers temporaires dans le répertoire personnel de l'utilisateur actuel. Assurez-vous qu'il y a de l'espace disque disponible sur la partition où se trouve votre répertoire personnel. Malheureusement, le serveur X ne fournit pas d'informations plus évidentes sur le manque d'espace disque dans ce cas.

Les DRI avec des cartes Matrox ne fonctionnent plus

Si vous utilisez une carte Matrox et que DRI a cessé de fonctionner après la mise à jour vers Xorg, essayez d'ajouter la ligne :

Option "OldDmaInit" "On"

à la section Device qui référence la carte vidéo dans xorg.conf.

Problèmes de mode frame-buffer

X ne parvient pas à démarrer avec les messages de journal suivants :

(WW) Falling back to old probe method for fbdev
(II) Loading sub module "fbdevhw"
(II) LoadModule: "fbdevhw"
(II) Loading /usr/lib/xorg/modules/linux//libfbdevhw.so
(II) Module fbdevhw: vendor="X.Org Foundation"
       compiled for 1.6.1, module version=0.0.2
       ABI class: X.Org Video Driver, version 5.0
(II) FBDEV(1): using default device

Fatal server error:
Cannot run in framebuffer mode. Please specify busIDs for all framebuffer devices

Pour corriger cela, désinstallez le paquet xf86-video-fbdev.

Le programme demande la police '(null)'

Message d'erreur : unable to load font `(null)'.

Certains programmes ne fonctionnent qu'avec des polices bitmap. Deux paquets majeurs avec des polices bitmap sont disponibles, xorg-fonts-75dpi et xorg-fonts-100dpi. Vous n'avez pas besoin des deux ; un seul devrait suffire. Pour savoir lequel serait le meilleur dans votre cas, essayez xdpyinfo de xorg-xdpyinfo, comme ceci :

$ xdpyinfo | grep resolution

et utilisez ce qui est le plus proche de la valeur indiquée.

Récupération : désactivation d'Xorg avant la connexion à l'interface graphique

Si Xorg est configuré pour démarrer automatiquement et que pour une raison quelconque vous devez l'empêcher de démarrer avant l'apparition du gestionnaire de connexion/affichage (si le système est mal configuré et que Xorg ne reconnaît pas votre souris ou votre clavier, par exemple), vous pouvez accomplir cette tâche avec deux méthodes.

  • Changer la cible par défaut en rescue.target. Consultez Systemd (Français)#Changer la cible par défaut pour le démarrage.
  • Si vous avez non seulement un système défectueux qui rend Xorg inutilisable, mais que vous avez également mis le temps d'attente du menu GRUB à zéro, ou que vous ne pouvez pas utiliser GRUB pour empêcher Xorg de démarrer, vous pouvez utiliser le live CD Arch Linux. Suivez le guide d'installation sur la façon de monter et de se connecter en chroot à l'Arch Linux installé. Vous pouvez aussi essayer de basculer vers un autre tty avec Ctrl+Alt + touche de fonction (généralement de F1 à F7 selon celle qui n'est pas utilisée par X), connectez-vous en tant que root et suivez les étapes ci-dessous.

Selon la configuration, vous aurez besoin de faire une ou plusieurs de ces étapes :

Les clients X démarrés avec "su" échouent

Si vous obtenez Client is not authorized to connect to server, essayez d'ajouter la ligne :

session optional pam_xauth.so

à /etc/pam.d/su et /etc/pam.d/su-l. pam_xauth définira alors correctement les variables d'environnement et gérera les clés xauth.

Le démarrage de X a échoué : Keyboard initialization failed

Si le système de fichiers (en particulier /tmp) est plein, startx échouera. /var/log/Xorg.0.log se terminera par :

(EE) Error compiling keymap (server-0)
(EE) XKB: Could not compile keymap
(EE) XKB: Failed to load keymap. Loading default keymap instead.
(EE) Error compiling keymap (server-0)
(EE) XKB: Could not compile keymap
XKB: Failed to compile keymap
Keyboard initialization failed. This could be a missing or incorrect setup of xkeyboard-config.
Fatal server error:
Failed to activate core devices.
Please consult the The X.Org Foundation support at http://wiki.x.org
for help.
Please also check the log file at "/var/log/Xorg.0.log" for additional information.
(II) AIGLX: Suspending AIGLX clients for VT switch

Libérez de l'espace sur le système de fichiers concerné et X démarrera.

Un écran vert lorsque vous essayez de regarder une vidéo

Votre profondeur de couleur est mal définie. Elle doit être de 24 au lieu de 16, par exemple.

Erreur de SocketCreateListener

Si X se termine avec le message d'erreur SocketCreateListener() failed, vous devez peut-être supprimer les fichiers de socket dans /tmp/.X11-unix. Cela peut se produire si vous avez précédemment lancé Xorg en tant que root (par exemple pour générer un xorg.conf).

Clé MIT-MAGIC-COOKIE-1 invalide lors de l'exécution d'un programme en tant que root

Cette erreur signifie que seul l'utilisateur actuel a accès au serveur X. La solution est de donner l'accès à root :

$ xhost +si:localuser:root

Cette ligne peut également être utilisée pour donner l'accès à X à un utilisateur différent de root.

Xorg-server Fatal server error : (EE) AddScreen/ScreenInit

Si le serveur Xorg ne fonctionne pas de manière aléatoire et que dans le journal Xorg vous consultez :

systemd-logind : failed to take device /dev/dri/card0 : Operation not permitted
...
AddScreen/ScreenInit failed for driver 0

Alors, ce problème peut être causé par le problème 13943 de systemd. Configurez le démarrage précoce de KMS.

Voir aussi