5.4. Configuration d'Xorg
Précédent | Chapitre 5. Le système X Window | Suivant

## 5.4. Configuration d'Xorg

Contribution originale de Warren Block.

### 5.4.1. Démarrage rapide

Xorg supporte les cartes graphiques, les claviers et les périphériques de pointage les plus courants.

### Astuce:

Les cartes graphiques, moniteurs et périphériques d'entrée sont détectés automatiquement. Ne créez pas de fichier `xorg.conf` ou n'utilisez pas l'option `-configure` en dehors d'un échec de la configuration automatique.

1. Si Xorg a déjà été utilisé sur cet ordinateur avant, déplacez ou supprimez les fichiers existants:

       # mv /etc/X11/xorg.conf ~/xorg.conf.etc
       # mv /usr/local/etc/X11/xorg.conf ~/xorg.conf.localetc

2. Ajouter au groupe `video` ou `wheel` l'utilisateur qui exécutera Xorg pour activer l'accélération 3D quand elle est disponible. Pour ajouter l'utilisateur `jru` aux groupes disponibles:

       # pw groupmod video -m jru || pw groupmod wheel -m jru

3. Le gestionnaire de fenêtres twm est inclu par défaut. Il est lancé quand Xorg démarre:

       % startx

4. Sur certaines anciennes versions de FreeBSD, la console système doit être configurée en vt(4) avant que le retour à la console texte puisse correctement fonctionner. Consultez Section 5.4.3, « Kernel Mode Setting (KMS) ».

### 5.4.2. Groupe utilisateur pour l'accélération graphique

L'accès à `/dev/dri` est nécessaire pour autoriser l'accélération 3D sur les cartes graphiques. Il est en général plus simple d'ajouter l'utilisateur qui exécutera X soit au groupe `video` soit au groupe `wheel`. Ici, pw(8) est utilisé pour ajouter l'utilisateur `slurms` au groupe `video`, ou au groupe `wheel` s'il n'y a pas de groupe `video`:

    # pw groupmod video -m slurms || pw groupmod wheel -m slurms

### 5.4.3. Kernel Mode Setting (KMS)

Quand l'ordinateur bascule de l'affichage sur la console vers une définition d'écran plus haute pour X, il doit fixer le mode de sortie graphique. Les versions récentes de Xorg utilisent un système présent dans le noyau pour effectuer ces changements de manière la plus efficace. Les anciennes versions de FreeBSD utilisent sc(4) qui n'a pas connaissance du système KMS. La conséquence est qu'après avoir fermé X, l'affichage de la console système sera vide même si elle reste fonctionnelle. La nouvelle console vt(4) évite ce problème.

Ajoutez la ligne suivante au fichier `/boot/loader.conf` pour activer vt(4):

    kern.vty=vt

### 5.4.4. Fichiers de configuration

Une configuration manuelle n'est généralement pas nécessaire. Ne créez pas de fichiers de configuration à la main à moins que la configuration automatique ne fonctionne pas.

#### 5.4.4.1. Répertoire

Xorg recherche ses fichiers de configuration dans plusieurs répertoires. `/usr/local/etc/X11/` est le répertoire recommandé pour ces fichiers sous FreeBSD. L'utilisation de ce répertoire permet de conserver une séparation entre les fichiers des applications et ceux du système d'exploitation.

Stocker les fichiers de configuration dans le répertoire `/etc/X11/` originel fonctionne toujours. Cependant, cela a pour conséquence de mélanger des fichiers concernant des applications avec ceux du système de base FreeBSD et n'est pas recommandé.

#### 5.4.4.2. Un seul ou plusieurs fichiers

Il est plus simple d'utiliser plusieurs fichiers qui chacun individuellement s'occupe de la configuration d'un paramètre précis plutôt qu'un seul fichier `xorg.conf` traditionnel. Ces fichiers sont stockés dans le sous-répertoire `xorg.conf.d/` du répertoire principal de configuration. Son chemin d'accès complet est en général `/usr/local/etc/X11/xorg.conf.d/`.

Des exemples de ces fichiers sont présentés plus bas dans cette section.

Le fichier unique traditionnel `xorg.conf` fonctionne toujours mais n'est ni clair ni aussi flexible que plusieurs fichiers dans le sous-répertoire `xorg.conf.d/`.

### 5.4.5. Cartes graphiques

En raison de changements effectués dans les versions récentes de FreeBSD, il est désormais possible d'utiliser les pilotes de périphériques graphiques proposés dans le catalogue des logiciels portés ou sous forme pré-compilé. Par conséquent, les utilisateurs peuvent utiliser un des pilotes disponibles à partir du logiciel graphics/drm-kmod.

Intel KMS driver, Radeon KMS driver, AMD KMS driver

  L'accélération 2D et 3D sont supportées par la plupart des cartes graphiques Intel KMS driver en provenance d'Intel.

  Nom du pilote: `i915kms`

  L'accélération 2D et 3D sont supportées par la plupart des anciennes cartes graphiques Radeon KMS driver en provenance d'AMD.

  Nom du pilote: `radeonkms`

  L'accélération 2D et 3D sont supportées par la plupart des nouvelles cartes graphiques AMD KMS driver en provenance d'AMD.

  Nom du pilote: `amdgpu`

  Pour information, veuillez consulter https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units ou https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units pour une liste des GPUs supportés.

Intel®

  L'accélération 3D est supportée sur la plupart des cartes graphiques Intel® jusqu'au Ivy Bridge (HD Graphics 2500, 4000, et P4000), y compris Iron Lake (HD Graphics) et Sandy Bridge (HD Graphics 2000).

  Nom du pilote: `intel`

  Pour information, consultez https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units.

AMD® Radeon

  L'accélération 2D et 3D sont supportées par les cartes Radeon jusqu'à la série HD6000 comprise.

  Nom du pilote: `radeon`

  Pour information, consultez https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units.

NVIDIA

  Plusieurs pilotes NVIDIA sont disponibles dans la catégorie `x11` du catalogue des logiciels portés. Installez le pilote correspondant à la carte graphique.

  Pour information, consultez https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units.

Configuration graphique hybride

  Certains ordinateurs portables ont un processeur graphique supplémentaire en plus de celui intégré dans le chipset ou le microprocesseur. Le système Optimus combine du matériel Intel® et NVIDIA. Les systèmes graphiques sélectionnables ou systèmes graphiques hybrides sont la combinaison d'un processeur Intel® ou AMD® et d'un GPU AMD® Radeon.

  L'implémentation de ces systèmes graphiques hybrides varie, et Xorg sous FreeBSD n'est pas en mesure de faire fonctionner toutes les versions.

  Certains ordinateurs fournissent une option du BIOS pour désactiver une de ces cartes graphiques ou pour sélectionner un mode discret qui peut être utilisé avec un des pilotes graphiques standard. Par exemple, il est parfois possible de désactiver le GPU NVIDIA dans un système Optimus. La partie graphique Intel® peut alors être utilisée avec un pilote Intel®.

  Les paramètres du BIOS dépendent du modèle d'ordinateur. Dans certaines situations, les deux GPU peuvent être laissés actifs, mais la création d'un fichier de configuration utilisant seulement le GPU principal dans la partie `Device` est suffisant pour qu'un tel système fonctionne.

Autres cartes graphiques

  Les pilotes pour les cartes graphiques moins courantes peuvent être trouvés dans la catégorie `x11-drivers` du catalogue des logiciels portés.

  Les cartes qui ne sont pas supportées par un pilote précis pourront toujours être utilisables avec le pilote x11-drivers/xf86-video-vesa. Ce pilote est installé par x11/xorg. Il peut également être installé manuellement en tant que x11-drivers/xf86-video-vesa. Xorg tente d'utiliser ce pilote quand un pilote spécifique à la carte graphique n'est pas trouvé.

  x11-drivers/xf86-video-scfb est un pilote graphique non-spécifique qui fonctionne sur de nombreux ordinateurs UEFI et ARM®.

Configuration du pilote graphique dans un fichier

  Pour configurer le pilote Intel® dans un fichier de configuration:

  Exemple 5.1. Sélection du pilote graphique Intel® à l'aide d'un fichier

  `/usr/local/etc/X11/xorg.conf.d/driver-intel.conf`

      Section "Device"
      	Identifier "Card0"
      	Driver     "intel"
      	# BusID    "PCI:1:0:0"
      EndSection

  Si plus d'une carte graphique est présente, l'identifant `BusID` peut être décommenté et paramétré pour sélectionné la carte désirée. Une liste des IDs des cartes graphiques peut être obtenu avec `pciconf -lv | grep -B3 display`.

  Pour configurer le pilote Radeon dans un fichier de configuration:

  Exemple 5.2. Sélection du pilote graphique Radeon à l'aide d'un fichier

  `/usr/local/etc/X11/xorg.conf.d/driver-radeon.conf`

      Section "Device"
      	Identifier "Card0"
      	Driver     "radeon"
      EndSection

  Pour configurer le pilote VESA dans un fichier de configuration:

  Exemple 5.3. Sélection du pilote graphique VESA à l'aide d'un fichier

  `/usr/local/etc/X11/xorg.conf.d/driver-vesa.conf`

      Section "Device"
      	Identifier "Card0"
      	Driver     "vesa"
      EndSection

  Pour configurer le pilote `scfb` pour une utilisation avec un ordinateur UEFI ou ARM®:

  Exemple 5.4. Sélection du pilote graphique `scfb` à l'aide d'un fichier

  `/usr/local/etc/X11/xorg.conf.d/driver-scfb.conf`

      Section "Device"
      	Identifier "Card0"
      	Driver     "scfb"
      EndSection

### 5.4.6. Moniteurs

Presque tous les moniteus supportent la norme Extended Display Identification Data (EDID). Xorg utilise EDID pour communiquer avec le moniteur et détecter les définitions et les taux de rafraichissement supportés. Ensuite, il sélectionne la combinaison de paramètres la plus adaptée pour le moniteur.

Les autres définitions supportées par le moniteur peuvent être sélectionnées en indiquant celle désirée dans les fichiers de configuration, ou à l'aide de xrandr(1) après avoir lancé le serveur X.

Utilisation de xrandr(1)

  Exécutez xrandr(1) sans aucun paramètre pour voir la liste des sorties vidéos et des modes détectés du moniteur:

      % xrandr
      Screen 0: minimum 320 x 200, current 3000 x 1920, maximum 8192 x 8192
      DVI-0 connected primary 1920x1200+1080+0 (normal left inverted right x axis y axis) 495mm x 310mm
         1920x1200     59.95*+
         1600x1200     60.00
         1280x1024     85.02    75.02    60.02
         1280x960      60.00
         1152x864      75.00
         1024x768      85.00    75.08    70.07    60.00
         832x624       74.55
         800x600       75.00    60.32
         640x480       75.00    60.00
         720x400       70.08
      DisplayPort-0 disconnected (normal left inverted right x axis y axis)
      HDMI-0 disconnected (normal left inverted right x axis y axis)

  Ceci montre que la sortie `DVI-0` est utilisée actuellement pour afficher une définition d'écran de 1920x1200 pixels à une fréquence de rafraichissement d'environ 60 Hz. Il n'y a pas de moniteur branché aux connecteurs `DisplayPort-0` et `HDMI-0`.

  N'importe quel autre mode d'affichage peut être choisi avec xrandr(1). Par exemple, pour basculer sur 1280x1024 à 60 Hz:

      % xrandr --mode 1280x1024 --rate 60

  Une opération courante est d'utiliser une sortie vidéo externe sur un ordinateur portable pour un vidéo-projecteur.

  Le type et le nombre de connecteurs de sortie varient en fonction des systèmes, et le nom donné à chaque sortie varie d'un pilote graphique à l'autre. Ce qu'un pilote appelle `HDMI-1`, un autre l'appellera `HDMI1`. Aussi la première chose à faire est de lancer xrandr(1) pour lister toutes les sorties disponibles.

      % xrandr
      Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192
      LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
         1366x768      60.04*+
         1024x768      60.00
         800x600       60.32    56.25
         640x480       59.94
      VGA1 connected (normal left inverted right x axis y axis)
         1280x1024     60.02 +  75.02
         1280x960      60.00
         1152x864      75.00
         1024x768      75.08    70.07    60.00
         832x624       74.55
         800x600       72.19    75.00    60.32    56.25
         640x480       75.00    72.81    66.67    60.00
         720x400       70.08
      HDMI1 disconnected (normal left inverted right x axis y axis)
      DP1 disconnected (normal left inverted right x axis y axis)

  Quatre sorties ont été trouvées: l'écran intégré `LVDS1`, et les connecteurs externes `VGA1`, `HDMI1`, et `DP1`.

  Le projecteur a été connecté à la sortie `VGA1`. xrandr(1) est maintenant utilisé pour régler cette sortie sur la définition native de ce vidéo-projecteur et pour ajouter l'espace d'affichage supplémentaire à droite du bureau:

      % xrandr --output VGA1 --auto --right-of LVDS1

  Le paramètre `--auto` sélectionne la définition et le taux de rafraichissement détecté par EDID. Si la définition n'est pas correctement détectée, une valeur définie peut être donnée avec le paramètre `--mode` à la place de `--auto`. Par exemple, la plupart des vidéo-projecteurs acceptent une définition de 1024x768 qui est réglée avec `--mode 1024x768`.

  xrandr(1) est souvent exécuté à partir de `.xinitrc` pour régler le mode adapté quand X est lancé.

Configuration de la définition du moniteur dans un fichier

  Pour configurer la définition de l'écran à 1024x768 dans un fichier de configuration:

  Exemple 5.5. Sélection de la définition d'écran à l'aide d'un fichier

  `/usr/local/etc/X11/xorg.conf.d/screen-resolution.conf`

      Section "Screen"
      	Identifier "Screen0"
      	Device     "Card0"
      	SubSection "Display"
      	Modes      "1024x768"
      	EndSubSection
      EndSection

  Les quelques moniteurs ne supportant pas l'EDID peuvent être configurés en paramétrant `HorizSync` et `VertRefresh` avec les plages de fréquences supportées par le moniteur.

  Exemple 5.6. Configuration manuelle des fréquences du moniteur

  `/usr/local/etc/X11/xorg.conf.d/monitor0-freq.conf`

      Section "Monitor"
      	Identifier   "Monitor0"
      	HorizSync    30-83   # kHz
      	VertRefresh  50-76   # Hz
      EndSection

### 5.4.7. Périphériques d'entrée

#### 5.4.7.1. Claviers

Disposition des touches de clavier

  L'emplacement normalisé des touches d'un clavier est appelé disposition (layout). Les dispositions et d'autres paramètres réglables sont listés dans la page de manuel xkeyboard-config(7).

  Une disposition des touches américaine est celle utilisée par défaut. Pour sélectionner une disposition différente, configurez les options `XkbLayout` et `XkbVariant` dans une section `InputClass`. Cette configuration sera appliquée à tous les périphériques d'entrée qui correspondent à cette classe.

  Cet exemple sélectionne une disposition de touches française.

  Exemple 5.7. Configuration d'une disposition des touches de clavier

  `/usr/local/etc/X11/xorg.conf.d/keyboard-fr.conf`

      Section	"InputClass"
      	Identifier	"KeyboardDefaults"
      	MatchIsKeyboard	"on"
      	Option		"XkbLayout" "fr"
      EndSection

  Exemple 5.8. Configuration de plusieurs dispositions des touches

  Configuration des dispositions américaine, espagnole et ukrainienne. Le passage de l'une à l'autre de ces dispositions se fait en appuyant sur Alt+Shift. x11/xxkb ou x11/sbxkb peuvent être utilisés pour un contrôle de la sélection de la disposition des touches amélioré et pour avoir des indicateurs de la disposition en cours d'utilisation.

  `/usr/local/etc/X11/xorg.conf.d/kbd-layout-multi.conf`

      Section	"InputClass"
      	Identifier	"All Keyboards"
      	MatchIsKeyboard	"yes"
      	Option		"XkbLayout" "us, es, ua"
      EndSection

Quitter Xorg à partir du clavier

  X peut être fermé à partir d'une combinaison de touches. Par défaut, cette combinaison n'est pas définie car elle entre en conflit avec les commandes passées au clavier pour certaines applications. L'activation de cette option nécessite d'effectuer des modifications à la section `InputDevice` du clavier:

  Exemple 5.9. Activation de la sortie d'X à l'aide du clavier

  `/usr/local/etc/X11/xorg.conf.d/keyboard-zap.conf`

      Section	"InputClass"
      	Identifier	"KeyboardDefaults"
      	MatchIsKeyboard	"on"
      	Option		"XkbOptions" "terminate:ctrl_alt_bksp"
      EndSection

#### 5.4.7.2. Souris et périphériques de pointage

### Important:

Si vous utilisez xorg-server 1.20.8 ou les versions suivantes sous FreeBSD 12.1 et que vous n'utilisez pas moused(8), ajoutez la ligne `kern.evdev.rcpt_mask=12` au fichier `/etc/sysctl.conf`.

Plusieurs paramètres de la souris peuvent être réglés avec les options de configuration. Consultez la page de manuel mousedrv(4) pour une liste complète.

Butons de la souris

  Le nombre de boutons d'une souris peut être configuré dans la section `InputDevice` du fichier `xorg.conf`. Pour fixer le nombre de boutons à 7:

  Exemple 5.10. Réglage du nombre de boutons de la souris

  `/usr/local/etc/X11/xorg.conf.d/mouse0-buttons.conf`

      Section "InputDevice"
      	Identifier  "Mouse0"
      	Option      "Buttons" "7"
      EndSection

### 5.4.8. Configuration manuelle

Dans certains cas, la configuration automatique d'Xorg ne fonctionne pas avec un matériel spécifique, ou une configuration différente est recherchée. Pour ces cas, un fichier de configuration personnalisé peut être créé.

### Avertissement:

Ne créez pas de fichiers de configuration à la main à moins que cela ne soit nécessaire. Une configuration inadaptée peut empêcher un fonctionnement correct.

Un fichier de configuration basé sur le matériel détecté peut être généré par Xorg. Ce fichier est un point de départ utile pour une configuration personnalisée.

Génération d'un fichier `xorg.conf`:

    # Xorg -configure

Le fichier de configuration est enregistré sous `/root/xorg.conf.new`. Effectuez les modifications désirées, puis tester ce fichier (avec l'option `-retro` de manière à avoir un fond d'écran visible) avec:

    # Xorg -retro -config /root/xorg.conf.new

Une fois que la nouvelle configuration a été ajustée et testée, elle peut être divisée en plus petits fichiers dans les emplacements habituels, `/usr/local/etc/X11/xorg.conf.d/`.

Précédent | Niveau supérieur | Suivant
5.3. Installer X11 | Sommaire | 5.5. Utilisation des polices de caractères sous Xorg

Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.