zion - depmod
Nom
depmod - gestion des dépendances entre les modules du noyau.
Résumé
depmod [-aA] [-ehnqrsuvV] [-C configfile ] [-F kernelsyms ] [-b basedirectory ] [ forced_version ] depmod [-enqrsuv] [-F kernelsyms] module1.o module2.o ...
Description
Les utilitaires depmod et modprobe ont été conçus pour rendre le noyau Linux modulaire, configurable pour tous les utilisateurs, administrateurs et concepteurs de distribution.
depmod crée un fichier de dépendances type "Makefile", basé sur les symboles qu'il trouve dans les modules indiqués sur la ligne de commande ou dans les répertoires indiqués par le fichier de configuration. Ce fichier est ensuite utilisé par modprobe pour charger automatiquement le module ou l'ensemble de modules corrects.
L'invocation normale de depmod se fait en incluant la ligne /sbin/depmod -a dans un fichier de démarrage de /etc/rc.d , afin que les dépendances entre modules soient disponibles immédiatement après le démarrage du système. Notez que l'option -a est maintenant facultative. Pour le démarrage, l'option -q peut s'avérer plus appropriée car elle permet de laisser depmod silencieux malgré les symboles non résolus.
On peut aussi créer le fichier de dépendances immédiatement après avoir compilé un nouveau noyau. Si vous faites "depmod -a 2.4.21" après avoir compilé le noyau 2.4.21 et ses modules pour la première fois, tout en continuant de travailler avec par exemple le 2.4.20, le fichier sera créé à l'emplacement adéquat. Dans ce cas, toutefois les dépendances avec le nouveau noyau ne sont pas garanties. Voir les options -F , -C , et -b pour plus de détails sur ce problème.
Pour analyser les relations entre modules et symboles exportés, depmod ne tient pas compte du status GPL des modules ou des symboles exportés. Ceci signifie que depmod n'indiquera pas d'erreur si un module sans licence compatible GPL fait référence à un symbole "GPL seulement" (EXPORT_SYMBOL_GPL dans le noyau). Néanmoins insmod refusera de résoudre les symboles "GPL seulement" pour les modules non-GPL et le véritable chargement échouera.
Options
-a , --all
Examine les modules dans tous les répertoires spécifiés dans le fichier (facultatif) de configuration /etc/modules.conf . |
-A , --quick
Comparer les horodatades des fichiers, et au besoin agir comme depmod -a . Cette option ne met à jour le fichier de dépendance qu'en cas de changement. |
-e , --errsyms
Affiche tous les symboles non résolus pour chaque module. |
-h , --help
Affiche une page d'aide et se termine immédiatement. |
-n , --show
Affiche les dépendances sur la sortie standard plutôt que /lib/modules. |
-q , --quiet
Demande une exécution silencieuse sans compte-rendu des fonctions manquantes. |
-r , --root
Quelques utilisateurs compilent les modules sans droits root et les installent en étant root. Ceci risque de créer des modules n'appartenant pas à root, même si le répertoire des modules est propriété du root. Si un tel compte utilisateur est piraté, un intrus peut modifier ces modules et les utiliser pour obtenir un accès root. |
Par défaut, modutils rejettera les demandes d'utilisation d'un module qui n'appartient à root. L'option -r supprimera l'erreur et autorisera le chargement de module n'appartenant pas à root. |
L'utilisation de -r est un danger pour la sécurité et est déconseillée.[/col][/row][/table]
-s , --syslog
Envoie les messages d'erreurs au démon syslog plutôt que sur stderr. |
-u , --unresolved-error
depmod 2.4 ne donne pas de code de retour lorsqu'il y a des symboles non résolus. La version majeure suivante de modutils (2.5) fournira un code pour les symboles non-résolus. Certaines distributions préfèrent un code non-nul dans modutils 2.4 mais ceci pose des problèmes avec les utilisateurs qui comptent sur l'ancien comportement. Si vous voulez un code non-num pour depmod 2.4, indiquez -u. depmod 2.5 ignorera silencieusement l'option -u et renverra toujours un code non-nul en cas de symboles non résolus; |
-v , --verbose
Affiche le nom de chaque module traité. |
-V , --version
Affiche la version de depmod. |
Les options suivantes sont utiles aux développeurs ds distributions :
-b basedirectory, --basedir basedirectory Si l'arborescence sous /lib/modules contenant les modules est déplacée ailleurs pour gérer les modules dans différents environnements, l'option -b indique à depmod où trouver l'image déplacée de l'arborescence /lib/modules . Les noms indiqués dans le fichier modules.dep créé par depmod, ne contiendront pas basedirectory . Cela signifie que l'arborescence basedirectory/lib/modules pourra se retrouver dans /lib/modules dans la distribution, avec toutes les références correctes. |
-C configfile, --config configfile Utilise le fichier configfile plutôt que le fichier /etc/modules.conf . La variable d'environnement MODULECONF peut aussi être utilisée pour sélectionner un fichier de configuration différent de celui par défaut /etc/modules.conf ou /etc/conf.modules (déconseillé). |
Quand la variable d'environnement UNAME_MACHINE est remplie, modutils l'utilisera à la place du champ "machine" de l'appel-système uname(). 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. |
-F kernelsyms,--filesyms kernelsyms Quand on construit les fichiers des dépendances pour un noyau différent de celui en cours d'utilisation, il est important que depmod utilise le bon jeu de fonctions pour trouver les références du noyau dans chaque module. Ces fonctions peuvent être une copie de System.map provenant d'un autre noyau, ou une copie de la sortie de /proc/ksyms . Si votre noyau utilise des symboles avec numéros de version, il vaut mieux utiliser une copie de la sortie de /proc/ksyms , car ce fichier contient les numéros de version des fonctions du noyau. Toutefois, vous pouvez utiliser System.map même avec les numéros de version. |
Configuration
Le comportement de depmod et de modprobe peut être ajusté par le fichier (optionnel) de configuration /etc/modules.conf Voir modprobe(8) et modules.conf(5) pour une description complète.
Stratégie
Chaque fois que vous compilez un noyau, la commande make modules_install créera un nouveau répertoire, mais ne changera pas le répertoire par défaut.
Quand vous avez un module non relié à la distribution du noyau, vous devez le mettre dans un répertoire indépendant de la version sous /lib/modules .
C'est la stratégie par défaut, laquelle peut être remplacée dans /etc/modules.conf .
Fichiers
/etc/modules.conf (aussi, mais déconseillé /etc/conf.modules ) /lib/modules/*/modules.dep , /lib/modules/*
Voir aussi
modules.conf (5), modprobe (8), modinfo (8), lsmod (8), ksyms (8)
Bugs
depmod [ -V | --version ] devrait se terminer immédiatement. En fait, il affiche la version et se comporte comme s'il n'avait aucune option.
Auteurs
Jacques Gelinas (jack@solucorp.qc.ca) Bjorn Ekwall (bj0rn@blox.se)
Traduction
Jérome Signouret, 2000. Christophe Blaess, 2003.
Poster un commentaire