GNU/Linux >> Tutoriels Linux >  >> Cent OS

Guide du débutant pour la configuration du module du noyau sous Linux

Le noyau Linux est chargé en mémoire par le chargeur de démarrage. Les modules du noyau sont chargés et déchargés dynamiquement à la demande. Ils fournissent des pilotes de périphériques pour permettre au noyau d'accéder au nouveau matériel, prennent en charge différents types de systèmes de fichiers et étendent généralement les fonctionnalités du noyau.

Liste des modules de noyau chargés

Pour répertorier les modules du noyau actuellement chargés dans le noyau, utilisez le lsmod commande. Cette commande produit une sortie en lisant le /proc/modules dossier. Exemple :

# lsmod
Module                  Size  Used by
ip_tables              27115  5 iptable_security,iptable_filter,iptable_mangle,iptable_nat,iptable_raw
xfs                   985426  2 
libcrc32c              12644  1 xfs
...

Le utilisé par La colonne donne le nombre total de processus qui utilisent le module et les autres modules dont il dépend, suivi d'une liste de ces modules dépendants.

Paquet kmod

La commande lsmod et d'autres fichiers et utilitaires de module du noyau tels que modinfo, modprobe, depmod, insmod et rmmod sont fournis par le package kmod :

# rpm -qf /sbin/lsmod 
kmod-20-9.el7.x86_64

Pour lister tous les fichiers fournis par le package kmod, entrez :

# rpm -ql kmod
/etc/depmod.d
/etc/depmod.d/dist.conf
/etc/modprobe.d
/usr/bin/kmod
/usr/lib/modprobe.d
/usr/sbin/depmod
/usr/sbin/insmod
/usr/sbin/lsmod
/usr/sbin/modinfo
/usr/sbin/modprobe
/usr/sbin/rmmod
/usr/sbin/weak-modules
/usr/share/bash-completion/completions/kmod
/usr/share/doc/kmod-20
/usr/share/doc/kmod-20/COPYING
/usr/share/doc/kmod-20/NEWS
/usr/share/doc/kmod-20/README
/usr/share/doc/kmod-20/TODO
/usr/share/man/man5/depmod.d.5.gz
/usr/share/man/man5/modprobe.conf.5.gz
/usr/share/man/man5/modprobe.d.5.gz
/usr/share/man/man5/modules.dep.5.gz
/usr/share/man/man5/modules.dep.bin.5.gz
/usr/share/man/man8/depmod.8.gz
/usr/share/man/man8/insmod.8.gz
/usr/share/man/man8/kmod.8.gz
/usr/share/man/man8/lsmod.8.gz
/usr/share/man/man8/modinfo.8.gz
/usr/share/man/man8/modprobe.8.gz
/usr/share/man/man8/rmmod.8.gz

Détails du module de liste

La commande modinfo affiche des informations détaillées sur un module spécifique du noyau. Par exemple, pour afficher des informations sur le module du noyau iptables, saisissez :

# modinfo ip_tables
filename:       /lib/modules/3.10.0-514.el7.x86_64/kernel/net/ipv4/netfilter/ip_tables.ko
description:    IPv4 packet filter
author:         Netfilter Core Team [[email protected]]
license:        GPL
rhelversion:    7.3
srcversion:     EDBAB32FC38D6942C83A4B1
depends:        
intree:         Y
vermagic:       3.10.0-514.el7.x86_64 SMP mod_unload modversions 
signer:         CentOS Linux kernel signing key
sig_key:        D4:88:63:A7:C1:6F:CC:27:41:23:E6:29:8F:74:F0:57:AF:19:FC:54
sig_hashalgo:   sha256

ici ,
nom du fichier  :Le chemin absolu du fichier objet du noyau
description  :La courte description du module
alias  :Les noms d'alias internes pour le module, le cas échéant
dépend  :Une liste de modules séparés par des virgules dont dépend ce module, le cas échéant
parm :Le nom du paramètre et une courte description

Les modules sont chargés depuis /lib/modules/[kernel_version]/kernel annuaire. Par exemple, pour afficher le chemin absolu du fichier objet du noyau ip_tables, :

# modinfo -n ip_tables
/lib/modules/3.10.0-514.el7.x86_64/kernel/net/ipv4/netfilter/ip_tables.ko

Charger et décharger les modules du noyau

Charger les modules
Les modules du noyau sont chargés à l'aide de la commande modprobe. Le gestionnaire de périphériques du noyau Linux, udev, utilise modprobe pour charger les pilotes du matériel détecté automatiquement. Par exemple pour charger le module noyau ip_tables :

# modprobe ip_tables

Pour vérifier que le module a bien été chargé :

# lsmod | grep ip_tables
ip_tables              27115  5 iptable_security,iptable_filter,iptable_mangle,iptable_nat,iptable_raw

Les modules dépendants sont chargés en premier. Utilisez modprobe –v (verbeux) pour afficher la résolution des dépendances lors du chargement d'un module du noyau. Par exemple :

# modprobe -v nfs
insmod /lib/modules/3.10.0-514.el7.x86_64/kernel/fs/fscache/fscache.ko 
insmod /lib/modules/3.10.0-514.el7.x86_64/kernel/fs/nfs/nfs.ko
Remarque :modprobe utilise la commande insmod pour charger les modules dans le noyau. N'utilisez pas insmod, cependant, car cette commande ne résout pas les dépendances.

Modules de déchargement
Déchargez les modules du noyau en utilisant le modprobe –r commande. Vous pouvez également utiliser l'option détaillée. Par exemple, pour décharger le module du noyau nfs, entrez :

# modprobe -rv nfs
rmmod nfs
rmmod fscache
Remarque :La commande modprobe –r utilise rmmod pour décharger les modules. Mais comme pour insmod, il n'est pas recommandé d'utiliser rmmod directement pour décharger les modules du noyau.

Les modules sont déchargés dans l'ordre inverse, le module noyau nfs.ko étant déchargé en premier, suivi des modules dont il dépendait. Les modules utilisés par un processus ou les modules requis par d'autres modules chargés ne sont pas déchargés.

Paramètres du module noyau

Tout comme le noyau peut accepter des paramètres de temps de démarrage pour modifier le comportement du noyau, les modules du noyau peuvent également accepter des paramètres pour modifier leur comportement. La syntaxe pour passer des paramètres à un module du noyau avec modprobe est :

# modprobe [module_name] [parameter=value]

Plusieurs paires paramètre=valeur peuvent être transmises en séparant les paires par des espaces. Assurez-vous que le module n'est pas déjà chargé, car modprobe ne recharge pas le module.

Répertoire de configuration pour modprobe

Le répertoire de configuration de modprobe est /etc/modprobe.d. Créez des fichiers *.conf dans /etc/modprobe.d pour :
– Spécifier les options
– Créer des alias
– Remplacer le comportement normal de modprobe
– Mettre les modules du noyau sur liste noire

Le format de ces fichiers .conf est une commande par ligne. Les commandes valides à utiliser dans ces fichiers sont les suivantes :

alias, options, install, remove, blacklist

Alias

Utilisez la syntaxe alias alias_name module_name pour créer des noms alternatifs pour les modules du noyau. Vous pouvez également utiliser des caractères génériques du shell dans les noms d'alias. Exemple :

alias usbdevfs usbcore

Options

Utilisez les options de syntaxe nom_module option(s) pour ajouter des options à nom_module. Exemple :

options b43 nohwcrypt=1 qos=0

Installer

Utilisez la syntaxe install module_name command(s) pour indiquer à modprobe d'exécuter des commandes shell plutôt que d'insérer le module dans le noyau. Exemple :

install net-pf-6 /bin/true

Supprimer

Ceci est similaire à la commande install, sauf qu'elle est invoquée lorsque "modprobe –r" est exécuté. Utilisez la syntaxe remove module_name command(s) pour indiquer à "modprobe –r" d'exécuter des commandes shell plutôt que de décharger le module du noyau.

Liste noire

Utilisez la syntaxe blacklist module_name pour indiquer à modprobe d'ignorer les alias internes d'un module. Les alias internes sont ceux vus lors de l'utilisation de la commande modinfo [module_name]. Le mot-clé de liste noire est généralement utilisé lorsque le matériel associé n'est pas nécessaire, ou lorsque deux modules ou plus prennent en charge les mêmes périphériques, ou lorsqu'un module prétend à tort prendre en charge un périphérique.

Reportez-vous à la page de manuel modprobe.d pour plus d'informations.

# man modprobe.d


Cent OS
  1. Configuration du démarrage de Linux

  2. Guide du débutant pour Samba (installation et configuration)

  3. Guide du débutant pour la gestion de l'espace d'échange sous Linux

  4. Guide du débutant pour Udev sous Linux

  5. Guide du débutant pour la configuration de yum

Comment charger ou décharger un module du noyau Linux

Comment charger et décharger les modules du noyau sous Linux

Commande Lsmod sous Linux (liste des modules du noyau)

Commande Modprobe sous Linux

Afficher les informations du module du noyau Linux avec la commande Modinfo

Guide complet de journalisation Linux