Quelle est la différence entre insmod et modprobe?

25

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

    
posée NES 04.01.2011 - 21:47
la source

4 réponses

21

Par man insmod :

  

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

    
réponse donnée 8128 04.01.2011 - 21:50
la source
33

modprobe lit les modules à partir de /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 constructions ( modules.alias.bin ) sont également reconnues, mais comme ces modules sont chargés par défaut, il n’ya pas lieu de modifier ce type de modules.

Par contre,

insmod accepte les chemins d'accès aux 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. C'est le programme inférieur utilisé par modprobe pour charger les modules.

Les 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 ne doit pas nécessairement être identique à celui transmis à modprobe (pour le fichier nvidia-current , il s'agit par exemple de nvidia ).

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

    
réponse donnée Lekensteyn 29.08.2011 - 23:01
la source
3

modprobe est une commande intelligente, elle recherche les dépendances lors du chargement d'un module. Supposons, si j'ai chargé un module, des symboles définis dans un autre module (ce chemin de module est indiqué dans le 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 donnera des erreurs de compilation comme Unresolved symbols . Dans ce cas, nous devons rechercher manuellement les modules dépendants et les charger pour résoudre les erreurs.

    
réponse donnée Shalini Guleria 08.11.2016 - 12:40
la source
0

L’utilitaire modprobe mérite une mention rapide. modprobe, comme insmod, charge un module dans le noyau. Il diffère en ce sens 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 du module actuel qui définissent les symboles pertinents. Lorsque modprobe trouve ces modules (nécessaires au module en cours de chargement), il les charge également dans le noyau. Si vous utilisez insmod dans cette situation, la commande échoue avec un message "symboles non résolus" laissé dans le fichier journal du système

    
réponse donnée user487054 29.12.2015 - 04:26
la source

Lire d'autres questions sur les étiquettes