Menu Fermer

Utiliser modprobe et configurer /etc/modprobe.d/

La commande modprobe est très utile pour charger et décharger des modules du noyau Linux.
Elle permet aussi de configurer les modules depuis /etc/modprobe.d

Dans ce tutoriel, je vous montre comment utiliser la commande modprobe mais aussi comment configurer le modules du noyaux Linux depuis /etc/modprobe.d/.

Utiliser modprobe et configurer /etc/modprobe.d/

Comment utiliser modprobe

La commande modprobe vous permet de charger et décharger des modules dans le noyaux Linux.

Comment charger un module dans le noyau Linux

Pour ajouter un module au noyau Linux avec modprobe :

sudo modprobe <nom du module>

Par exemple :

sudo modprobe bfq

Pour charger plusieurs modules, utilisez l’option -a :

sudo modprobe <options> -a <nom du module> <nom du module>

Trouvez tous les modules disponibles pour la version actuelle du noyau avec :

find /lib/modules/$(uname -r) -type f -name '*.ko*' | more

Comment décharger un module du noyau Linux

Pour retirer un module du noyau Linux avec modprobe, utilisez l’option -r (remove).
Cela va aussi décharger tous les modules qui en dépendent :

sudo modprobe -r bfq
comment charger un module dans le noyau Linux

Comment ignorer les vérifications et forcer l’insertion ou le retrait d’un module

Modprobe propose l’option –force (ou -f) pour forcer l’insertion ou la suppression du module de force lorsque les erreurs de version apparaissent.
Ignorer les vérifications de version d’un module du noyau peut provoquer un plantage du noyau ou un comportement non défini du système en raison de l’incompatibilité.
N’utilisez donc ces options qu’avec la plus grande prudence.

modprobe --force <nom du module>
modprobe -r --force <nom du module>

Lister les dépendances d’un module

La commande modprobe donne la possibilité d’afficher les informations de dépendance d’un module (ou alias).
Pour cela, on utilise l’option –show-depend :

modprobe --show-depends <nom du module>

Par exemple pour afficher les dépendances de usbhib :

modprobe --show-depends usbhid

On voit que ce dernier a une dépendance avec le module hid.

Lister les dépendances d'un module

Comment afficher les modules blacklistés

Parfois, on peut avoir besoin de vérifier si un module est en liste noire.
Pour afficher les modules blacklistés, vous devez grep blackList à partir de la sortie modprobe –showconfig :

 modprobe --showconfig | grep blacklist
Comment afficher les modules blacklistés

Comment afficher la configuration de tous les modules

Utilisez l’option –show-config pour afficher la configuration complète des modules du noyau Linux :

modprobe --show-config <nom du module>

ou l’option -c :

modprobe -c

Comment configurer /etc/modprobe.d/

La configuration de modprobe se trouve dans le répertoire /etc/modprobe.d.
Editez ou ajoutez un fichier de configuration (fichier .conf) pour modifier le comportement de modprobe.
Le fichier de configuration accepte différentes commandes pour configurer le chargement des modules du noyau Linux.

Les commandes dans /etc/modprobe.d/

CommandeDescription
alias wildcard <nom du module>Permet de donner un nom alternatif pour un module
ex: alias my-mod really_long_module_name).
Certains modules contiennent leur propre alias (voir modinfo) utilisé si aucun alias n’est définis.
blacklist <nom du module> indique que tous les alias interne d’un module sont ignorés.
install <nom du module> command…Lancer cette commande au lieu d’insérer le module normalement. Peut-être une commande Shell. Cette commande sera remplacée dans le future.
options <nom du module> optionsPermet d’ajouter des options au module spécifié
remove <nom du module>commandes... Identique à install mais est utilisé avec modprobe -r
softdep <nom du module>Permet de spécifier des dépendances modules soft ou facultatives.
<nom du module> peut être utilisé sans ces modules facultatifs installés, mais généralement avec certaines fonctionnalités manquantes.
Les commandes de /etc/modprobe.d/

Créer un alias dans modprobe

Les alias sont des noms alternatifs que l’on peut attribuer à un module.
Cela permet ensuite d’être utilisé dans la commande modprobe.

alias <nom du module> <alias>

Utilisez la commande modinfo pour obtenir les options disponibles du module (ligne parm).

Comment afficher des informations sur un module (modinfo)

Ajouter des options

Cette commande vous permet d’ajouter des options au module à chaque fois qu’il est inséré dans le noyau.
Toutes les options sont additionnées: ils peuvent provenir d’une option pour le module lui-même, pour un alias et sur la ligne de commande.

La syntaxe est :

options <nom du module> <options>

Par exemple pour ajouter l’option start_ro=1 sur le module md_mod :

options md_mod start_ro=1

Mettre un module en liste noire (blacklist)

Vous pouvez ajouter un module en liste noire afin d’empêcher son chargement.
Cela est utile si un module cause des instabilités ou si un module entre en conflit avec un autre.

Généralement, on ajoute cela dans le fichier blacklist.conf mais vous pouvez spécifier un blacklist dans n’importe quel fichier.

La syntaxe est la suivante :

blacklist <nom du module>

Par exemple, pour ajouter le module bfq en liste noire :

echo "blacklist bfq" >> /etc/modprobe.d/blacklist.conf

Utiliser softdep pour ajouter des dépendances

Permet de spécifier des dépendances lors de l’insertion ou le retrait d’un module.
Pour cela, on utilise pre: pour charger ou post: pour charger après.
Par exemple pour ajouter une dépendance à vboxdrv avec vfat lors de son insertion :

softdep vboxdrv post: vfat

Lorsque vboxdrv va être chargé, cela va aussi charger vfat.