Comment faire pour déterminer si un module est chargé dans le noyau linux
Je suis juste curieux de savoir est-il un moyen pour déterminer si un module est chargé/installé.
$lsmod répertorie tous les modules de pilote de périphérique chargé).
Est-il un moyen de vérifier ou d'une commande qui renvoie true/false booléenne sortie si un nom de module est interrogé. pour eg. si le clavier.o existe return true sinon false. j'ai besoin de cette astuce pour terminer mon permis auto refresh programme.
PS: je l'ai essayé modinfo. je suis à l'aide de busybox client dans mon test DUT alors pouvez-vous donner quelques solutions de rechange autres que modinfo ?
- La question est un peu ambigu. Êtes-vous essayer de vérifier si le pilote est chargé dans la mémoire ou installé sur le système? modinfo aiderait avec le dernier mais pas l'ancien.
Vous devez vous connecter pour publier un commentaire.
ne sais pas si
modinfo modname
et la vérification de$?
de travail pour vous, juste une suggestion.alternativement, vous aussi grep
/proc/modules
modinfo
approche ne semble pas vraiment travailler pour le chargement check (comme dans la question du titre). Il montre l'information, indépendamment de savoir si le module est chargé.La
modinfo module
méthode ne fonctionne pas bien pour moi. Je préfère cette méthode est semblable à la méthode alternative proposée:grep -Eq "^${MODULE} ";
J'ai écrit ceci:
Il vérifie dans
/proc/modules
. Si le module est là, il est supposé pour être chargé, pas autrement.Les autres semblaient trop long pour moi (l'autre à court exige la racine, ce qui ne fonctionne pas). Bien sûr, il est juste écrit ce qui a été déjà mentionné comme "alternatives".
Attention:
modprobe
accepte certaines variantes de noms de modules, autres que les premiers répertoriés dans/proc/modules
. Par exemple le chargementsnd-aloop
fonctionne, mais le module est nommésnd_aloop
et est répertorié comme tel dans/proc/modules
et lors de l'utilisation dermmod
c'est aussi le seul nom qui va travailler."^$MODULE\>"
au lieu de assurez-vous de ne pas appariement juste une partie du nom du module.La
--first-time
drapeau causesmodprobe
à l'échec si le module est déjà chargé. Que conjointement avec la--dry-run
(ou l'abréviation-n
) drapeau fait un test de nice:Edit 1: Comme @Personne n'a souligné ce imprime aussi
Loaded
si le module n'existe pas. Nous pouvons résoudre ce problème en combinant avecmodinfo
:Edit 2: Sur certains systèmes
modprobe
vit dans/usr/sbin
, ce qui n'est pas dans le$PATH
, sauf si vous êtes root. Dans ce cas, vous devrez remplacermodprobe
pour/usr/sbin/modprobe
ci-dessus.La meilleure idée est de créer une fonction bash:
Retourne: