| ||||||||
Astucien ![]() | Avec le remplacement du paquet modules-init-tools par kmod dans beaucoup de distributions Linux, l'option -l --list (Afficher les modules chargeables) de modprobe est sans effet pour qui veut lister des modules du noyau actif. Comme plusieurs, je me suis mis à utiliser la commande find comme substitue. J'en suis arrivé à cette fonction Bash que j'ai ajouté à mon $HOME/.bashrc: function fmod() { [ "$1" != '' ] && find /lib/modules/$(uname -r) -iname "$1".ko -print | awk -F $(uname -r)/ '{print $NF}'
Cette variante de cette fonction donne les mêmes résultats: function fmod() { Les commandes fmod et modprobe -l me retournent toutes les deux la liste de tous les modules disponibles: fmod | wc modprobe -l | wc Si on ajoute \* à ces commandes, cela donne le même résultat. Le caractère \ est nécessaire pour que l'astérix fonctionne dans ce cas. L'astérix est nécessaire si on ne connaît pas le nom du module au complet: fmod 2800 et modprobe -l 2800 ne retournent rien, alors que fmod *2800* et modprobe -l *2800* retournent toutes les deux kernel/drivers/net/wireless/rt2x00/rt2800lib.ko sous Funtoo où l'option -l de modprobe fonctionne encore. Je me demande pourquoi l'option -l de modprobe a été abandonnée. Modifié par Logicien le 27/08/2012 22:31 | |||||||
Publicité | ||||||||
![]() ![]() | Bonjour Paul,
Je vois mal la différence avec lsmod.
Remarque : sous Arch, je pense que le find doit porter sur .ko.gz. Modifié par Esclapion le 27/08/2012 16:00 | |||||||
![]() ![]() | Bonsoir Esclapion, effectivement, dans le cas d'ArchLinux et de ses 'hérétiques', la recherche doit porter sur l'extension .ko.gz, puisque les modules de cette distribution sont compressés avec Gzip. Donc, la fonction pour ArchLinux doit se lire *.ko.gz et "$1".ko.gz . La fonction fonctionne telle quelle pour Debian et descendants ainsi que pour Gentoo/Funtoo et éventuellement pour toute distribution Linux dont les modules du noyau ont l'extension .ko. Il ne faut pas confondre ce que fait la commande lsmod de ce que fait la commande modprobe -l . La première, lsmod, liste les modules déjà chargés en mémoire vive, utilisés ou non par Linux. La seconde, modprobe -l, liste les modules disponibles pour utilisation par le noyau Linux actif, chargés en mémoire vive ou non, utilisés ou non. Sous ArchLinux, j'ai 2873 modules utilisables par le noyau 3.4.7-1-fbcondecor. C'est pourquoi il est pratique de filtrer la recherche avec un mot-clé. Avec cette fonction, mon but est d'offrir les mêmes possibilités que l'option -l de modprobe, possibilités que les développeurs Linux ont retranchées. Modifié par Logicien le 27/08/2012 22:34 | |||||||
![]() ![]() | Pour toi, donc, un module actif n'est pas un module chargé, mais uniquement un module qui existe dans le noyau.
Sinon, j'ai modprobe, mais sans option -l. J'ai aussi kmod, mais ce dernier, avec le paramètre list, fait la même chose que lsmod.
(edit)
D'ailleurs, je viens de voir que : lsmod, rmmod, insmod, modinfo, modprobe et depmod sont des liens symboliques vers kmod. Modifié par Esclapion le 27/08/2012 22:31 | |||||||
![]() ![]() | Re, Au passage, cette liste est contenue dans module.dep ou mieux dans modules.order :
...quitte à faire un depmod avant, en cas de modif.
| |||||||
![]() ![]() | Sauf erreur, je n'interprète pas les choses ici. J'ai parlé de modules utilisables, de modules chargés en mémoire vive et de modules utilisés par le noyau Linux. Un module actif pour moi, est chargé en mémoire vive et utilisé par le noyau Linux. Certains modules sont chargés en mémoire vive sans être utilisés. Ils sont donc inactifs. Ceux qui ne sont pas utilisés du tout peuvent généralement être déchargés de la mémoire vive sans problème. Certains peuvent être chargés et être inactifs pour un temps, mais nécessaires si un événement les concernent. La commande lsmod liste aussi les modules qui dépendent des modules chargés, les modules dépendants affichées étant eux aussi chargés. Pour retirer un module de la mémoire vive, celui-ci ne doit plus être utilisé par le noyau et aucun autre module, ce qui implique que tous ceux qui dépendent de lui et qui sont chargés en mémoire vive doivent être déchargés. | |||||||
![]() ![]() | Oui, c'est moi qui ai mal lu ce bout de phrase :
C'est le noyau qui est actif, pas les modules. | |||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | |||||||||||||||
|