43 votes

Quelle est la différence entre insmod et modprobe?

Y a-t-il des différences entre insmod et modprobe?

46voto

Lekensteyn Points 162346

modprobe lit les modules depuis /lib/modules/$(uname -r)/modules.dep.bin (ou sans le suffixe .bin si l'autre fichier n'est pas disponible). À partir du même fichier, les dépendances sont chargées.

modprobe accepte le nom d'un fichier .ko dans /lib/modules/$(uname -r) (par exemple nvidia-current pour le fichier dkms/nvidia-current.ko) et les alias (modules.alias.bin). Les fonctionnalités intégrées (modules.alias.bin) sont également reconnues, mais étant donné que ces modules sont chargés par défaut, il n'est pas nécessaire de modprober ce type de modules.

insmod d'autre part accepte des chemins vers des fichiers. Le module n'a pas besoin de résider dans /lib/modules/$(uname -r), mais les dépendances ne sont pas chargées automatiquement. Il s'agit du programme inférieur utilisé par modprobe pour charger les modules.

D'autres programmes liés aux modules sont rmmod et modinfo.

rmmod supprime un nom de noyau basé sur le nom de /proc/modules. Ce nom n'a pas nécessairement à être le même que celui passé à modprobe (pour le fichier nvidia-current, cela serait nvidia par exemple).

modinfo accepte un nom de fichier, ou le nom de fichier sans le suffixe .ko dans /lib/modules/$(uname -r).

36voto

8128 Points 28272

Selon man insmod:

La plupart des utilisateurs préfèreront utiliser modprobe, qui est plus intelligent et peut gérer les dépendances des modules.

5voto

Shalini Guleria Points 51

modprobe est une commande intelligente, elle recherche les dépendances lors du chargement d'un module. Supposons que j'ai chargé un module qui a des symboles définis dans un autre module (le chemin de ce module est donné à l'intérieur du module principal). Ainsi, modprobe charge le module principal et le module dépendant.

Mais si insmod est utilisé, il ne chargera pas la dépendance, ce qui entraînera des erreurs de compilation telles que Symboles non résolus. Dans ce cas, nous devons rechercher manuellement le module dépendant et les charger pour résoudre les erreurs.

0voto

user487054 Points 1

L'utilitaire modprobe mérite une brève mention. modprobe, comme insmod, charge un module dans le noyau. Il diffère en ce qu'il examinera le module à charger pour voir s'il fait référence à des symboles qui ne sont pas actuellement définis dans le noyau. Si de telles références sont trouvées, modprobe recherche d'autres modules dans le chemin de recherche des modules actuels qui définissent les symboles pertinents. Lorsque modprobe trouve ces modules (qui sont nécessaires au module en cours de chargement), il les charge également dans le noyau. Si vous utilisez insmod dans cette situation à la place, la commande échoue avec un message "symboles non résolus" laissé dans le fichier journal du système

0voto

MD SHAYON Points 165

La commande modprobe offre plus de fonctionnalités que les utilitaires plus basiques insmod et rmmod. modprobe ajoute ou supprime intelligemment un module du noyau Linux. Notez que, par commodité, il n'y a pas de différence entre _ et - dans les noms de module (une conversion automatique des underscores est effectuée). modprobe recherche dans le répertoire du module /lib/modules/uname -r pour tous les modules et autres fichiers, à l'exception des fichiers de configuration facultatifs dans le répertoire /etc/modprobe.d (certaines distributions utilisent le fichier /etc/modprobe.conf à la place).

en savoir plus

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X