Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
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
ouNFS
.
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
.