Xorg (Français) - ArchWiki

Jump to content
From ArchWiki
É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.

Related articles

- Autostarting
- Display manager (Français)
- Window manager (Français)
- Font configuration
- Cursor themes
- Desktop environment
- Wayland (Français)
- xinit (Français)
- xrandr
- XDMCP

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 :

- NVIDIA (Français)#Multiple monitors
- ATI#Multihead setup.

#### 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 :

- Désactivez le gestionnaire d'affichage.
- Désactiver le démarrage automatique de X.
- Renommez le fichier `~/.xinitrc` ou commentez la ligne `exec` qu'il contient.

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

- Xplain - Explication approfondie du système X Window.
- Xorg(1)
- xorg.conf(5)
- Gentoo:Xorg/Guide#Configuration

Category:

- X server (Français)