MODPROBE(8)

NOM
modprobe - Manipulations haut niveau de modules chargeables

SYNOPSIS
modprobe [-adnqv] [-C config] module [symbole=valeur ... ]
modprobe [-adnqv] [-C config] [-t type] motif
modprobe -l [-C config] [-t type] motif
modprobe -c [-C config]
modprobe -r [-dnv ] [-C config] [ module ...]
modprobe -Vh

OPTIONS

-a, --all
    Charger tous les modules au lieu de s'arrêter après le premier chargement réussi.

-c, --showconfig
    Afficher la configuration courante.

-C, --config config
    Utiliser le fichier de configuration config plutôt que (le facultatif) /etc/modules.conf pour le paramétrage. La variable d'environnement MODULECONF peut être aussi utilisée pour sélectionner (et surcharger) un fichier de configuration différent du fichier par défaut /etc/modules.conf, ou /etc/conf.modules (obsolète).

Quand la variable d'environnement UNAME_MACHINE est remplie, modutils l'utilisera à la place du champ « machine » de l'appel système uname(2). Ceci est surtout utile si vous compilez des modules 64 bits dans un espace utilisateur 32 bits ou inversement ; remplissez UNAME_MACHINE avec le type de modules construits. La version actuelle de modutils ne supporte pas la construction croisée complète de modules, elle est limitée au choix entre 32 et 64 bits de l'architecture hôte.

-d, --debug
    Afficher des informations sur la représentation interne de la pile de modules.

-h, --help
    Afficher un résumé des options et se termine.

-k, --autoclean
    Marquer les modules pour auto-nettoyage. Utilisé par le noyau quand il appelle modprobe pour satisfaire les dépendances manquantes. L'option -q est impliquée par -k. Ces options seront directement transmises à insmod.

-l, --list
    Afficher les modules chargeables.

-n, --show
    Ne rien faire en réalité, indiquer juste ce qui serait fait.

-q, --quiet
    Ne pas se plaindre si insmod échoue au chargement d'un module. Continuer en silence à essayer d'autres possibilités. Cette option sera directement transmise à insmod.

-r, --remove
    Enlever le module (ou la pile) ou exécuter un auto-nettoyage suivant s'il y a des modules indiqués ou non sur la ligne de commande.

-s, --syslog
    Envoyer les messages à syslog plutôt que sur la sortie d'erreur. Cette option sera directement transmise à insmod.

-t moduletype ; --type moduletype
    Ne considérer que les modules du type indiqué. modprobe ne s'occupera que des modules dont le répertoire inclut exactement « /moduletype/ ». Il peut contenir plusieurs noms ; par exemple « -t drivers/net » listera tous les modules dans xxx/drivers/net/ et ses sous-répertoires.

-v, --verbose
    Afficher les commandes au fur et à mesure qu'elles sont exécutées.

-V, --version
    Afficher le numéro de version.

Note :
    Les noms de modules ne doivent contenir ni chemin d'accès (pas de « / »), ni de suffixe « .o ». Par example, lp est un nom correct pour modprobe, /lib/modules/2.4.21/kernel/char/lp ou lp.o sont invalides. Ceci concerne la ligne de commande et les entrées dans les fichiers de configuration.

DESCRIPTION
Les utilitaires modprobe et depmod rendent un noyau Linux modulaire plus facilement gérable pour tous les utilisateurs, administrateurs et développeurs de distribution.

modprobe utilise un fichier de type « Makefile » pour les dépendances, créé par depmod, pour charger automatiquement les bons modules depuis l'ensemble des modules disponibles dans les répertoires prédéfinis.

modprobe sert à charger un seul module, la pile de modules dépendants, ou tous les modules marqués par une étiquette spécifique.

modprobe chargera automatiquement la base de modules nécessaire à un ensemble, comme décrit dans le fichier de dépendances modules.dep. Si un chargement échoue, la totalité des modules chargés par la commande sera déchargée automatiquement.

modprobe a deux façons pour charger des modules. La première (le mode d'essai) essaiera de charger un module de la liste (définie par motif). modprobe arrête le chargement dès qu'un module est chargé avec succès. Cela peut être utilisé pour charger automatiquement un pilote de carte ethernet parmi d'autres.
Sinon, modprobe peut charger tous les modules d'une liste. Voir les EXEMPLES ci-dessous.

Avec l'option -r, modprobe déchargera automatiquement l'ensemble des modules, de la même façon qu'en utilisant rmmod -r. On peut noter que modprobe -r seul fera le ménage parmi les modules inutilisés et lancera les commandes de pré et de post-enlèvement dans le fichier de configuration /etc/modules.conf.

Avec l'option -l combinée à l'option -t, une liste de tous les modules disponibles d'un type donné sera affichée.

L'option -c affichera la configuration courante (celle par défaut ainsi que le fichier de configuration).

CONFIGURATION
Le comportement de modprobe (et de depmod) peut être modifié par le fichier (optionnel) de configuration /etc/modules.conf.
Pour une description plus détaillée de ce que peut contenir ce fichier, ainsi que la configuration par défaut de depmod et de modprobe, voir modules.conf(5).

Note : les commandes de pré et de post-enlèvement ne seront pas exécutées si un module est déchargé (car ce module est marqué « autoclean ») par kerneld ! Voir plutôt le support des données persistantes.
Si vous voulez utiliser les caractéristiques de pré et de post-installation, vous devez enlever l'option « autoclean » pour kerneld et plutôt mettre une commande dans votre crontab (c'est utilisé par les systèmes kmod) ; pour effectuer un rafraîchissement toutes les deux minutes :
 */2 * * * * test -f /proc/modules && /sbin/modprobe -r

STRATÉGIE
L'idée est que modprobe regardera en premier dans le répertoire contenant les modules compilés pour la version spécifique du noyau en cours d'exécution ( /lib/modules/2.2.12-20/ par exemple). Si le module n'est pas trouvé ici, modprobe ira dans le répertoire commun de la version du noyau (ex. 2.0, 2.2).

Quand vous installez un nouveau noyau, les modules sont déplacés dans le répertoire relatif à la version spécifique (et à la version générale) du noyau que vous installez. Vous devez alors créer un lien symbolique de ce répertoire vers le répertoire par défaut.

Chaque fois que vous compilez un nouveau noyau, la commande make modules_install créera un nouveau répertoire, mais ne change pas le lien par défaut.

Quand vous avez un module non relié à la distribution du noyau, vous devez le mettre dans un des répertoires indépendants de la version sous /lib/modules.

C'est la stratégie par défaut. On peut passer outre avec /etc/modules.conf.

EXEMPLES

modprobe -t net
    Charge un des modules qui sont stockés dans le répertoire étiqueté « net ». Chaque module est essayé jusqu'à réussite.

modprobe -a -t boot
    Tous les modules qui sont dans les répertoires étiquetés boot seront chargés.

modprobe slip
    Cela tentera de charger le module slhc.o s'il n'a pas déjà été chargé, car le module slip a besoin des fonctionnalités du module slhc. Cette dépendance est décrite dans le fichier modules.dep qui est créé automatiquement par depmod

modprobe -r slip
    déchargera le module slip. Il enlèvera aussi le module slhc automatiquement, s'il n'est pas utilisé par d'autres modules bien sûr (comme ppp).

FICHIERS
/etc/modules.conf (aussi mais obsolète : /etc/conf.modules)
/lib/modules/*/modules.dep,
/lib/modules/*

MODE DE SÉCURITÉ RENFORCÉE
Si l'UID effectif n'est pas égal à l'UID réel, alors modprobe traite ses entrées avec suspicion. Le dernier paramètre est toujours considéré comme un nom de module, même s'il débute par « - ». Il ne peut y avoir qu'un nom de module, et les options du type « variable=valeur » sont interdites. Le nom de module est toujours traité comme une chaîne, et aucun développement n'est réalisé en mode de sécurité renforcé. Toutefois les développements sont toujours appliqués aux données lues dans le fichier de configuration.

L'UID effectif peut être différent de l'UID quand modprobe est invoqué par le noyau, depuis le 2.4.0-test11. Dans un monde idéal, modprobe pourrait faire confiance au noyau pour ne lui fournir que des paramètres valides. Malheureusement, il y a eu au moins une attaque basée sur le passage de paramètres non-vérifiés par du code de haut-niveau du noyau. Depuis, modprobe ne fait plus confiance au noyau.

modprobe bascule automatiquement en mode de sécurité renforcé quand l'environnement n'est constitué que de ces chaînes :
 HOME=/
 TERM=linux
 PATH=/sbin:/usr/sbin:/bin:/usr/bin
Ceci correspond à l'exécution de modprobe par le noyau depuis le 2.2 jusqu'au 2.4.0-test11, même si UID == E-UID, ce qui se produisait sur les noyaux anciens.

COMMANDES DE JOURNALISATION
Si le répertoire /var/log/ksymoops existe et si modprobe est lancé avec un option de chargement ou déchargement de module, modprobe journalisera ses actions et codes de retour dans /var/log/ksymoops/`date +%Y%m%d.log`. Il n'y a pas d'option pour désactiver cet enregistrement automatique. Si vous voulez l'éviter, ne créez pas /var/log/ksymoops. Lorsque ce répertoire existe, il doit appartenir à root, avoir le mode 644 ou 600 et il faudrait lancer le script insmod_ksymoops_clean quotidiennement.

UTILITAIRES NÉCESSAIRES
depmod(8), insmod(8).

NOTES
Le motif fourni à modprobe aura souvent besoin d'être protégé pour s'assurer qu'il soit correctement interprété.

AUTEURS
Jacques Gelinas (jack@solucorp.qc.ca)
Bjorn Ekwall (bj0rn@blox.se)

VOIR AUSSI
depmod(8), lsmod(8), kerneld(8), ksyms(8), rmmod(8)

TRADUCTION

Ce document est une traduction réalisée par Jérome Signouret en 2000 et révisée le 19 novembre 2007.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 8 modprobe ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.