GNU/Linux >> Tutoriels Linux >  >> Linux

Quelle est la différence entre insmod et modprobe

Lors du développement, vous utilisez généralement insmod pour charger un module et il convient de lui donner le chemin du module à charger :

$ insmod filename [module-options]

C'est une forme de chargement de module de bas niveau, qui forme la base d'autres méthodes de chargement de module, et c'est celle que nous utiliserons dans ce livre. D'autre part, il existe modprobe, principalement utilisé par les administrateurs système ou dans un système de production. modprobe est une commande intelligente qui analyse le fichier modules.dep afin de charger d'abord les dépendances, avant de charger le module donné. Il gère automatiquement les dépendances des modules, comme le fait un gestionnaire de packages :

$ modprobe module-name
insmod modprobe
Charge le module donné comme "insmod /path/to/module.ko" Charge le module uniquement dans /lib/modules/$(uname -r). 'modprobe /home/test/hello.ko' ne fonctionnera pas
Les dépendances si présentes ne sont pas chargées modprobe calcule les dépendances, charge les dépendances puis le module principal

Comment modprobe calcule les dépendances ?

Modprobe dépend de l'outil depmod pour calculer les dépendances. depmod calcule les dépendances de tous les modules présents dans le dossier /lib/modules/$(uname -r) et place les informations de dépendance dans le fichier /lib/modules/$(uname -r)/modules.dep

Par exemple. kernel/drivers/net/wireless/admtek/adm8211.ko :kernel/net/mac80211/mac80211.ko kernel/net/wireless/cfg80211.ko kernel/drivers/misc/eeprom/eeprom_93cx6.ko

Dans ce cas, eeprom_93cx6.ko, cfg80211.ko est chargé en premier, puis adm8211.ko

Les modules sont chargés de droite à gauche et retirés de gauche à droite. Ainsi, lors de la suppression, adm8211.ko est supprimé, puis cfg80211.ko et enfin eeprom_93cx6.ko. Nous pouvons recharger le fichier modules.dep en exécutant la commande "depmod -a"

Résumé

insmod est une commande d'administration système pour charger le nom de fichier du module dans le noyau. Plus simple mais moins flexible que la commande modprobe. Les messages d'erreur de insmod peuvent être vagues, car le noyau effectue les opérations de module en interne et envoie donc des informations d'erreur au journal du noyau au lieu de la sortie standard ; voir dmesg.

Les informations contenues dans les fichiers module.* sont utilisées par la commande modprobe pour localiser un module par son nom plutôt que par son chemin complet. modprobe possède de nombreuses autres fonctionnalités qui sont décrites dans le manuel.

Les informations de dépendance de module sont également utilisées par les gestionnaires de périphériques, udev en particulier. Lorsqu'un nouveau matériel est détecté, par exemple un nouveau périphérique USB, le démon udevd est alerté et transmis au fournisseur, et les ID de produit sont lus à partir du matériel. udevd analyse les fichiers de dépendance des modules à la recherche d'un module qui a enregistré ces identifiants. S'il en trouve un, il est chargé à l'aide de modprobe.


Linux
  1. La Différence Entre [[ $a ==Z* ]] Et [ $a ==Z* ] ?

  2. Quelle est la différence entre Git Switch et Checkout ?

  3. Quelle est la différence entre le mutex et la section critique ?

  4. Quelle est la différence entre fsck et e2fsck ?

  5. Quelle est la différence entre ls et l ?

Quelle est la différence entre InnoDB et MyISAM ?

Quelle est la différence entre Linux et Unix ?

Quelle est la différence entre la connexion et le shell sans connexion

Quelle est la différence entre la commande apt et apt-get ?

Qu'est-ce qu'un Hyperviseur ? Quelle est la différence entre les types 1 et 2 ?

Quelle est la différence entre curl et Wget ?