Dynamic Kernel Module Support (Français)

From ArchWiki
État de la traduction: Cet article est la version francophone de Dynamic Kernel Module Support. Date de la dernière traduction: 2022-01-05. Vous pouvez aider à synchroniser la traduction s'il y a eu des changements dans la version anglaise.

Traduit de Wikipedia :

Dynamic Kernel Module Support (DKMS) est un programme/framework qui permet de générer des modules du noyau Linux dont les sources résident généralement en dehors de l'arbre des sources du noyau. Le concept est de reconstruire automatiquement les modules DKMS lorsqu'un nouveau noyau est installé.

Cela signifie qu'un utilisateur n'a pas à attendre qu'une entreprise, un projet ou un mainteneur de paquet publie une nouvelle version du module. Depuis l'introduction des pacman hooks, la reconstruction des modules est gérée automatiquement lorsqu'un noyau est mis à jour.

Installation

Installez le paquet dkms et les en-têtes pour le ou les noyaux cibles. Par exemple, pour le noyau linux par défaut, ce sera linux-headers. Les autres noyaux ont leurs propres paquets d'en-têtes respectifs.

Un bon nombre de modules qui se trouvent en dehors de l'arbre des sources du noyau ont une variante de DKMS ; quelques-uns sont hébergés dans les dépôts officiels, la plupart se trouvent dans AUR.

Mises à jour

Bien que la reconstruction des modules DKMS soit généralement transparente lors d'une mise à jour du noyau, il peut arriver que la reconstruction échoue. Vous devez prêter une attention particulière à la sortie de pacman. Cela s'applique en particulier si le système dépend du module DKMS pour démarrer correctement et/ou si vous utilisez DKMS avec un noyau personnalisé qui ne se trouve pas dans les dépôts officiels.

Pour faire face aux changements du noyau, corriger les bogues ou ajouter des fonctionnalités nécessaires, pensez à mettre à jour le paquet DKMS avant de redémarrer.

Utilisation

Utilisation pour invoquer DKMS manuellement.

La complétion par tabulation est disponible en faisant :

# source /usr/share/bash-completion/completions/dkms

Liste des modules

Pour lister l'état actuel des modules, versions et noyaux dans l'arbre :

# dkms status

Reconstruction des modules

Reconstruire tous les modules pour le noyau en cours d'exécution :

# dkms autoinstall

ou pour un noyau spécifique :

# dkms autoinstall -k 3.16.4-1-ARCH

Pour construire un module spécifique pour le noyau en cours d'exécution :

# dkms install -m nvidia -v 334.21

ou simplement :

# dkms install nvidia/334.21

Pour construire un module pour tous les noyaux :

# dkms install nvidia/334.21 --all

Supprimer des modules

Pour supprimer un module (les anciens modules ne sont pas automatiquement supprimés) :

# dkms remove -m nvidia -v 331.49 --all

ou simplement :

# dkms remove nvidia/331.49 --all

Si le paquet dkms est supprimé, les informations concernant les fichiers de construction des modules précédents sont perdues. Si c'est le cas, parcourez /usr/lib/modules/kernel_release et /var/lib/dkms/package_name et supprimez tous les fichiers et répertoires qui ne sont plus utilisés.

Création de paquets DKMS

Consultez les Directives pour les paquets DKMS.

Ramdisk initial

Si vous avez installé des modules de noyau via DKMS qui sont utilisés dans le ramdisk initial, par exemple zfs-dkmsAUR, vous pouvez écrire un hook pacman pour automatiser le processus de régénération des images initramfs.

Par exemple, si vous utilisez linux et mkinitcpio, pour mettre à jour le module ZFS après chaque mise à jour de zfs-dkmsAUR,

/etc/pacman.d/hooks/90-mkinitcpio-dkms-linux.hook
[Trigger]
Operation=Install
Operation=Upgrade
Operation=Remove
Type=Package
Target=zfs-dkms
Target=linux

[Action]
Description=Update dkms modules in Linux initcpio
Depends=mkinitcpio
When=PostTransaction
NeedsTargets
Exec=/bin/sh -c 'while read -r trg; do case $trg in linux) exit 0; esac; done; /usr/bin/mkinitcpio -p linux'

Vous pouvez ajouter d'autres cibles au hook et faire des copies supplémentaires du hook si vous avez installé d'autres noyaux. Notez que le préfixe 90- est nécessaire pour s'assurer qu'il s'exécute après les hooks DKMS.

Voir aussi