Chapitre 26. Utiliser des modules de noyau

Le noyau Linux est modulaire, ce qui signifie qu'il peut étendre ses capacités par l'utilisation de modules de noyau chargés dynamiquement. Un module de noyau peut fournir :
  • un pilote de périphérique qui ajoute la prise en charge de nouveau matériel ; ou,
  • la prise en charge d'un système de fichiers tel que btrfs ou NFS.
Comme le noyau lui-même, les modules peuvent prendre des paramètres permettant de personnaliser leur comportement, même si les paramètres par défaut fonctionnent bien dans la plupart des cas. Les outils de l'espace utilisateur peuvent répertorier les modules actuellement chargés dans un noyau d'exécution ; interroger tous les modules disponibles pour les paramètres disponibles et des informations spécifiques au module ; et charger ou décharger des modules (remove) dynamiquement vers ou depuis un noyau en cours d'exécution. Bon nombre de ces utilitaires, qui sont fournis dans le paquet kmod, prennent les dépendances de module en compte lorsque vous effectuez des opérations, ce qui fait que les suivis de dépendance sont rarement nécessaires.
Sur les systèmes modernes, les modules de noyau sont automatiquement chargés par divers mécanismes lorsque les conditions l'exigent. Cependant, il peut y avoir des occasions où il est nécessaire de charger ou décharger des modules manuellement, comme lorsqu'un module est préférable à un autre même si les deux fournissent la même fonctionnalité de base, ou lorsqu'un module se comporte anormalement.
Ce chapitre explique comment :
  • utiliser les utilitaires kmod d'espace utilisateur pour afficher, effectuer des requêtes, charger et décharger des modules de noyau et leurs dépendances ;
  • définir des paramètres de modules sur la ligne de commande de manière dynamique et permanente afin de pouvoir personnaliser le comportement de vos modules de noyau ; et,
  • charger les modules pendant le démarrage.

Note

Pour utiliser les utilitaires de modules de noyau décrits dans ce chapitre, commencez par vous assurer que le paquet kmod est installé sur votre système en exécutant la commande suivante en tant qu'utilisateur root :
~]# yum install kmod
Pour obtenir davantage d'informations sur l'installation de paquets avec Yum, veuillez consulter la Section 8.2.4, « Installation de paquets ».

26.1. Répertorier les modules actuellement chargés

Vous pouvez répertorier tous les modules de noyau actuellement chargés dans le noyau en exécutant la commande lsmod, exemple :
~]$ lsmod
Module                  Size  Used by
tcp_lp                 12663  0 
bnep                   19704  2 
bluetooth             372662  7 bnep
rfkill                 26536  3 bluetooth
fuse                   87661  3 
ip6t_rpfilter          12546  1 
ip6t_REJECT            12939  2 
ipt_REJECT             12541  2 
xt_conntrack           12760  7 
ebtable_nat            12807  0 
ebtable_broute         12731  0 
bridge                110196  1 ebtable_broute
stp                    12976  1 bridge
llc                    14552  2 stp,bridge
ebtable_filter         12827  0 
ebtables               30913  3 ebtable_broute,ebtable_nat,ebtable_filter
ip6table_nat           13015  1 
nf_conntrack_ipv6      18738  5 
nf_defrag_ipv6         34651  1 nf_conntrack_ipv6
nf_nat_ipv6            13279  1 ip6table_nat
ip6table_mangle        12700  1 
ip6table_security      12710  1 
ip6table_raw           12683  1 
ip6table_filter        12815  1 
ip6_tables             27025  5 ip6table_filter,ip6table_mangle,ip6table_security,ip6table_nat,ip6table_raw
iptable_nat            13011  1 
nf_conntrack_ipv4      14862  4 
nf_defrag_ipv4         12729  1 nf_conntrack_ipv4
nf_nat_ipv4            13263  1 iptable_nat
nf_nat                 21798  4 nf_nat_ipv4,nf_nat_ipv6,ip6table_nat,iptable_nat[sortie tronquée]
Chaque ligne de la sortie lsmod spécifie :
  • le nom d'un module de noyau actuellement chargé en mémoire ;
  • la quantité de mémoire utilisée ;
  • la somme totale des processus utilisant le module et des autres modules qui en dépendent, suivie d'une liste des noms de ces modules, s'ils existent. À l'aide de cette liste, vous pouvez décharger tous les modules selon le module que vous souhaitez décharger. Pour obtenir davantage d'informations, veuillez consulter la Section 26.4, « Décharger un module ».
Finalement, veuillez remarquer que la sortie lsmod est moins verbeuse et considérablement plus facile à lire que le contenu du pseudo-fichier /proc/modules.