X.Org est l’implémentation du serveur X ( serveur d’affichage du système de fenêtre X) sur Linux.
Son fichier de configuration est xorg.conf.
Pour la plupart des utilisateurs de Linux, le fichier xorg.conf est l’un de ces fichiers qui fait grincer des dents de nombreux utilisateurs de Linux avec la menace de devoir configurer. Il y a une raison à cela, c’est complexe. Mais lorsque vous comprenez les pièces qui composent l’ensemble du puzzle, la configuration de X Windows devient beaucoup plus facile.
Dans ce tutoriel je vous explique comment fonctionne le fichier xorg.conf, comment ça marche et comment configurer X.Org.
Table des matières
xorg.conf : comment ça marche
Au besoin commencez par lire ce guide :
Le fichier xorg.conf généralement à l’emplacement /etc/X11 ou /usr/etc/X11/ décrit le fonctionnement du serveur X.
Pour cela, il fonctionne avec des sections.
Chaque section commence par la balise Section et se termine par la balise EndSection.
Chaque section peut également être divisée en sous-sections. Une sous-section commence par la balise SubSection et se termine par la balise EndSubSection.
Cela donne la structure suivante :
Section "Screen" SubSection "Display" EndSubSection EndSection
Les sections sont :
- Files – Chemin pour des fichiers tels que FontPath
- ServerFlags – les options globales Xorg
- Module – les modules à charger
- InputDevice – la configuration des périphériques d’entrée comme le clavier et pointeur (souris)
- Device – la description / information de la carte graphique
- Monitor – la description du périphérique d’affichage
- Modes – définit les modes vidéo en dehors de la section Monitor
- Screen – la configuration de l’adaptateur vidéo à un moniteur
- ServerLayout – lie un ou plusieurs écrans avec un ou plusieurs dispositifs d’entrée
- DRI – les informations sur l’infrastructure de rendu direct en option
- Vendor – les informations spécifiques au fournisseur
Enfin une section peut comporter des options.
A noter que dans les distributions Linux actuelles, le fichier xorg.conf n’existe plus.
/etc/x11/xorg.conf.d/ ou /usr/share/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 Xorg.conf traditionnel. Notez que lors de la configuration conflictuelle, le fichier lu en dernier sera traité. Pour cette raison, les fichiers de configuration les plus génériques doivent être commandés d’abord par le nom.
Les entrées de configuration du fichier xorg.conf sont traitées à la fin.
Toutefois, pour créer un nouveau fichier xorg.conf, utilisez la commande suivante :
sudo Xorg -configure
Les sections de xorg.conf
Files (Facultative)
La section Files est utilisée pour spécifier certains noms de chemin requis par le serveur.
Par exemple, on peut y définir le chemin de recherche des polices (fonts).
Ce chemin est une liste séparée par des virgules d’éléments de chemin de police que le serveur Xorg recherche les bases de données de police.
Plusieurs entrées FontPath peuvent être spécifiées et elles seront concaténées pour construire le FontPath utilisé par le serveur. Les éléments de chemin de police peuvent être des chemins de répertoire absolus, des répertoires de catalogue ou un identifiant de serveur de police. Les formats des deux derniers sont expliqués ci-dessous :
Section "Files" FontPath "/usr/share/fonts/win7fonts" FontPath "/usr/share/fonts/corefonts" FontPath "/usr/share/fonts/dejavu" FontPath "/usr/share/fonts/liberation-fonts" FontPath "/usr/share/fonts/droid" FontPath "/usr/share/fonts/ttf-bitstream-vera" FontPath "/usr/share/fonts/bitstream-cyberbit" FontPath "/usr/share/fonts/rphicfonts" FontPath "/usr/share/fonts/encodings" FontPath "/usr/share/fonts/ja-ipafonts" FontPath "/usr/share/fonts/wqy-microhei" FontPath "/usr/share/fonts/ipamonafont" FontPath "/usr/share/fonts/urw-fonts" FontPath "/usr/share/fonts/wqy-zenhei" EndSection
La section des fichiers est facultative et on peut spécifier une section vide :
Section "Files" EndSection
Module (Facultative)
Dans cette section, on charge des modules spécifiques à X.Org.
Par exemple dbe, glx, freetype.
Le matériel doit supporté le module, par exemple glx (GLX (OpenGL Extension to the X Window System”) nécessite un pilote qui prend en charge l’accélération 3D.
Les librairies des modules sont stockées dans /usr/lib/xorg/modules et peut nécessiter l’installation de paquets supplémentaires.
Section "Module" Load "dbe" Load "extmod" Load "type1" Load "freetype" Load "glx" EndSection
InputDevice
Décrit la configuration des périphériques d’entrée.
Le fichier de configuration peut avoir plusieurs sections InputDevice. Les serveurs X récents utilisent des backends HAL ou UDEV pour l’énumération des périphériques d’entrée et le hotplug d’entrée. Il n’est généralement pas nécessaire de fournir des sections InputDevice dans le xorg.conf si le hotplug est utilisé (c’est-à-dire AutoAddDevices activé). Si Hotplugging est activé, les sections InputDevice à l’aide du pilote de souris, KBD et VMMouse seront ignorées.
Si le hotplug est désactivé, il y en aura normalement au moins deux: un pour le clavier central (primaire) et un pour le pointeur de base. Si l’un ou l’autre de ces deux est manquant, une configuration par défaut pour les manquants sera utilisée.
Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/psaux" Option "Emulate3Buttons" "no" Option "ZAxisMapping" "4 5" EndSection
Section "InputDevice" Identifier "Keyboard0" Driver "kbd" EndSection
Monitor
Le fichier de configuration peut avoir plusieurs sections Monitor.
Il devrait normalement y en avoir au moins une, pour le moniteur utilisé, mais une configuration par défaut sera créée lorsque l’on n’est pas spécifié.
La seule entrée obligatoire dans une section Monitor est l’entrée de Identifier.
L’entrée d’identifiant spécifie le nom unique de ce moniteur. La section Monitor peut être utilisée pour fournir des informations sur les spécifications du moniteur, les options spécifiques au moniteur et les informations sur les modes vidéo à utiliser avec le moniteur.
La spécification des modes vidéo est facultative car le serveur utilisera le DDC ou d’autres informations fournies par le moniteur pour configurer automatiquement la liste des modes disponibles.
Toutefois, on peut spécifier manuellement les taux de rafraichissement horizontaux et verticaux avec HorizSync et VertRefresh.
Ainsi que les résolutions écran supportées à l’aide de Modeline.
Section "Monitor" Identifier "Monitor0" VendorName "LG" ModelName "TV-0" HorizSync 15.0 - 67.0 VertRefresh 59.0 - 60.0 # 1280x1024x59.35 @ 63.084kHz Modeline "1280x1024_60" 108.000000 1280 1360 1496 1712 1024 1028 1032 1063 -HSync +VSync # 1680x1050x60.29 @ 65.714kHz Modeline "1680x1050_60" 148.250000 1680 1784 1968 2256 1050 1054 1058 1090 -HSync +VSync # 1920x1080x51.98 @ 58.008kHz Modeline "1920x1080_60" 148.500000 1920 2032 2240 2560 1080 1084 1088 1116 -HSync +VSync Option "DPMS" Option "PreferredMode" "1280x1024_60" EndSection
InputClass (Facultative)
Le fichier de configuration peut avoir plusieurs sections d’entrée. Ces sections sont facultatives et sont utilisées pour fournir une configuration pour une classe de périphériques d’entrée car elles sont automatiquement ajoutées.
Un périphérique d’entrée peut correspondre à plus d’une section d’entrée. Chaque classe peut remplacer les paramètres d’une classe précédente, il est donc préférable d’organiser les sections avec les correspondances les plus génériques en premier.
Section "InputClass" Identifier "Keyboard0" Driver "kdb" Option "XkbLayout" "it" Option "XkbOptions" "terminate:ctrl_alt_bksp" MatchIsKeyboard "on" EndSection
Device
Le fichier de configuration peut avoir plusieurs sections de périphérique. Il doit y en avoir au moins un, pour la carte vidéo utilisée.
Voici les principales entrées :
- Driver : L’entrée du pilote spécifie le nom du pilote à utiliser pour cet appareil graphique. Lorsque vous utilisez le serveur chargé, le module de pilote “pilote” sera chargé pour chaque section de périphérique actif. On trouve généralement fbdev, vesa, nv, nvidia, ati ou amd
- BusID : Cela spécifie l’emplacement du bus de la carte graphique. Pour les cartes PCI / AGP, la chaîne BUS-ID a le formulaire PCI:BUS:Function: Fonction (par exemple, «PCI: 1: 0: 0» pourrait être approprié pour une carte AGP). Ce champ est généralement facultatif dans les configurations à carte graphique unique avec l’utilisation de la carte graphique principale. Dans les configurations avec carte graphique multiples, ou lors de l’utilisation d’une carte graphique secondaire dans une configuration à une seule tête, cette entrée est obligatoire
- VendorName : Cette entrée facultative spécifie le fabricant du moniteur.
Section "Device" Identifier "Device0" Driver "nvidia" BusID "PCI:1:0:0" VendorName "NVIDIA Corporation" BoardName "GeForce 8600 GT" Option "UseEDIDFreqs" "false" Option "NoEDIDModes" "true" Option "ModeValidation" "TV-0: NoMaxPClkCheck, NoEdidMaxPClkCheck, AllowNonEdidModes" Option "IgnoreEDID" "true" Option "IgnoreEDIDChecksum" "TV-0" EndSection
Il faut installer le pilote server-xorg-video correspond à la carte graphique ou un pilote générique qui supporte ou non l’accélération 3D.
Par exemple xserver-xorg-video-nvidia-510, xserver-xorg-video-fbdev, xserver-xorg-video-radeon, xserver-xorg-video-vesa
Xorg recherche automatiquement les pilotes installés :
- S’il ne peut pas trouver le pilote spécifique installé pour le matériel, il recherche d’abord fbdev (xf86-video-fbdev), qui n’inclut aucune accélération 2D ou 3D
- Si cela n’est pas trouvé, il recherche vesa (xf86-video-vesa), le pilote générique, qui gère un grand nombre de chipsets mais n’inclut aucune accélération 2D ou 3D.
- Si Vesa n’est pas trouvée, Xorg retombera au réglage du mode du noyau, qui comprend l’accélération GLAMOR
Voici les pilotes qui supportent l’accélération 3D :
Marque | Type | Driver | OpenGL | OpenGL (multilib) |
---|---|---|---|---|
AMD / ATI | Open source | xf86-video-amdgpu | mesa | lib32-mesa |
xf86-video-ati | ATI | |||
Propriétaire | xf86-video-amdgpu | amdgpu-pro-libgl | lib32-amdgpu-pro-libgl | AMDGPU PRO |
Intel | Open source | xf86-video-intel | mesa | lib32-mesa |
NVIDIA | Open source | xf86-video-nouveau | mesa | lib32-mesa |
Proprietary | nvidia | nvidia-utils | lib32-nvidia-utils | NVIDIA |
nvidia-470xx-dkms | nvidia-470xx-utils | lib32-nvidia-470xx-utils | ||
nvidia-390xx | nvidia-390xx-utils | lib32-nvidia-390xx-utils |
Screen
Le fichier de configuration peut avoir plusieurs sections d’écran selon si on a un affichage multi-écran.
Mais il doit y en avoir au moins une section, pour que «l’écran» soit utilisé.
Un «écran» représente la liaison d’un périphérique graphique (Device section) et d’un moniteur (Monitor section).
Une section screen est considérée comme «active» si elle est référencée par une section active ServerLayout ou par l’option -screen de ligne de commande.
Si aucun de ceux-ci n’est présent, la première section d’écran trouvée dans le fichier de configuration est considérée comme celle active.
Section "Screen" Identifier "Screen0" Device "Device0" Monitor "Monitor0" Option "HorizSync" "TV-0:15-67" Option "VertSync" "TV-0:59-60" DefaultDepth 24 Option "Stereo" "0" Option "nvidiaXineramaInfoOrder" "TV-0" Option "TwinView" "0" Option "TwinViewXineramaInfoOrder" "TV-0" Option "Metamodes" "1280x1024_60" Option "SLI" "Off" Option "MultiGPU" "Off" Option "BaseMosaic" "off" Option "AddARGBGLXVisuals" "True" Option "TVStandard" "HD1080p" Option "UseDisplayService" "TV" Option "TVOutFormat" "COMPONENT" Option "UseEDID" "False" SubSection "Display" Depth 24 Modes "1920x1080_60" "1680x1050_60" "1280x1024_60" "1024x768" "800x600" "640x480" ViewPort 0 0 Visual "TrueColor" EndSubSection EndSection
ServerFlags
En plus des options spécifiques à cette section (décrites ci-dessous), la section ServerFlags est utilisée pour spécifier certaines options globales du serveur Xorg. Toutes les entrées de cette section sont des options, bien qu’à des fins de compatibilité, certaines des entrées à l’ancienne soient toujours reconnues.
Ces entrées à l’ancienne ne sont pas documentées ici, et les utiliser est découragée. La section ServerFlags est facultative, tout comme les entrées qui peuvent y être spécifiées.
Section "ServerFlags" Option "AIGLX" "true" Option "DontVTSwitch" "no" Option "DontZap" "off" EndSection
Modes
Ces sections fournissent un moyen de définir des ensembles de modes vidéo indépendamment des sections Monitor. Les sections monitor peuvent inclure les définitions fournies dans ces sections en utilisant le mot-clé UseModes. Dans la plupart des cas, les sections de modes ne sont pas nécessaires car l’ensemble intégré des modes standard VESA sera suffisant.
DRI (Facultative)
La section facultative est utilisée pour fournir des informations pour l’infrastructure de rendu direct – Direct Rendering Infrastructure (DRI).
Des détails sur le format de cette section peuvent être trouvés en ligne sur http://dri.freedesktop.org/.
Section "dri" Mode 0666 EndSection
Extensions (Facultative)
La section Extensions est utilisée pour spécifier quelles extensions de protocole X11 doivent être activées ou désactivées.
Ainsi la plupart des options se déclarent par ENABLE ou DISABLE.
Par exemple ci-dessous, on active le
Section "Extensions" Option "Composite" "Enable" EndSection
Utilisez la commande suivante pour obtenir la liste des extensions :
Xorg -extension ?
Vendor (Facultative)
La section vendors en option peut être utilisée pour fournir des informations de configuration spécifiques au fournisseur.
Plusieurs sections de fournisseurs peuvent être présentes et ils peuvent contenir une entrée d’identifiant et plusieurs indicateurs d’option. Les données là-bas ne sont pas utilisées dans cette version.
ServerLayout
Une «disposition du serveur» représente la liaison d’un ou plusieurs écrans (Screen section) et d’un ou plusieurs périphériques d’entrée (InputDevice sections) pour former une configuration complète.
Elle décrit donc l’affichage et reprend les informations des autres sections ainsi que des options spécifiques.
Par exemple, ici on charge l’écran de la section Screen0 et les périphériques d’entrée Keyboard0 et Mouse0.
Section "ServerLayout" Identifier "Layout0" Screen "Screen0" InputDevice "Keyboard0" "CoreKeyboard" InputDevice "Mouse0" "CorePointer" Option "Xinerama" "0" EndSection
Liens
- Système d’exploitation et OS : qu’est-ce que c’est ? comment ça marche ?
- Découvrir Linux : Qu’est-ce que Linux ?
- Les distributions Linux : qu’est-ce que c’est ?
- Qu’est-ce que le serveur X sur Linux
- Qu’est-ce qu’un environnement de bureau Linux
- Configurer et comprendre xorg.conf
- Linux : passer de Xorg (X11) à Wayland