KMS

De ArchwikiFR


Articles en relation:


Note : Le pilote propriétaire NVIDIA driver supporte KMS sans passer par l'implémentation du noyau et ne possède pas de pilote fbdev (pour les hautes résolutions dans la console virtuelle).

Arrière plan

Il était auparavant de la responsabilité du serveur X de gérer les paramètres de la carte graphique. A cause de cela, il n'était pas facile d'accéder à certaines fonctions de l'affichage depuis les consoles virtuelles. Aussi, chaque basculement entre X et une console virtuelle (Ctrl+Alt+F2) était lent et produisait un vacillement de l'image car le serveur devait redonner le contrôle au noyau. Et ce "lourd" processus se répétait dans le sens inverse.

Avec Le Kernel Mode Setting (KMS) le noyau peut désormais définir le mode de fonctionnement de la carte graphique. Cela autorise des capacités graphiques supérieures durant le démarrage et dans les consoles virtuelles ainsi qu'un basculement rapide entre X et les tty's.

Installation

Sachez premièrement que pour n'importe laquelle des méthodes vous devez toujours désactiver les options de démarrage suivantes:

  • n'importe quelle option vga= de votre étant donné que cela entrerait en conflit avec la résolution native de votre matériel.
  • n'importe quelle ligne video= qui active un framebuffer qui entre en conflit avec le pilote.
  • n'importe quel autre pilote de framebuffer (tel uvesafb).

Démarrage KMS tardif

Les pilotes Intel, Nouveau, ATI et AMDGPU activent KMS automatiquement pour tous les chipsets. Aucune action n'est donc nécessaire.

Le pilote propriétaire NVIDIA supporte KMS depuis la version 364.12, mais ceci doit être manuellement activé.

Le pilote propriétaire ATI#Catalyst Catalyst ne supporte pas KMS. Si vous souhaitez utiliser KMS vous devrez le remplacer par un pilote open-source (AMDGPU ou ATI)

Démarrage KMS précoce

KMS est normallement initialisé durant le Processus de boot par udev, Cependant il est possible de l'activer dès l'étape de l'initramfs. Pour cela, ajoutez le module requis pour votre carte graphique au champs MODULES de votre fichier /etc/mkinitcpio.conf:

  • amdgpu pour le AMDGPU
  • radeon pour le pilote (legacy) ATI.
  • i915 pour Intel.
  • nouveau pour Nouveau (pilote open source Nvidia).
  • Suivant l'utilisation de QEMU: virtio-gpu pour VirtIO, qxl pour QXL, ou cirrus pour Cirrus.

Par exemple pour activer le démarrage précoce pour les gpu Intel:

/etc/mkinitcpio.conf
MODULES=(... i915 ...)
Note : Les possesseur de cartes Intel devront parfois ajouter intel_agp avant i915 pour supprimer les erreurs ACPI. Ce peut être nécessaire pour sortir d'une mise-en-veille après un changement de résolution.
Astuce : Si vous utilisez un fichier EDID personnalisé, vous devez l'inclure également.:
/etc/mkinitcpio.conf
FILES=(/usr/lib/firmware/edid/your_edid.bin)

Il ne reste plus qu'à régénérer l'initramfs:

mkinitcpio -p linux   #linux-lts

Désactiver KMS

Si pour une quelconque raison, vous souhaitez désactiver KMS (un écran noir, une erreur "pas de signal", le pilote catalyst, etc.), ajoutez nomodeset aux paramètres de démarrage de votre noyau. Voir la documentation du chargeur de démarrage en place sur votre système pour savoir comment réaliser cela.

En plus du paramètre nomodeset,vous devez ajouter:

  • i915.modeset=0 pour les chipsets Intel
  • nouveau.modeset=0 pour les cartes graphiques Nvidia
  • Pour les Nvidia Optimus dual-graphics, vous devez les ajouter tous les trois (c_à_d "nomodeset i915.modeset=0 nouveau.modeset=0").
Note : Certains pilotes Xorg ne fonctionnent pas si KMS est désactivé. Voir les pages individuelles de ces différents pilotes.