Mise à jour : Debian 10.6
La partie monolithique du noyau intègre un petit nombre de modules, appelés modules internes, susceptibles d'être utilisés très tôt dans le démarrage.
A la différence des modules externes, les modules internes
utilisés ou non, sont tous chargés pendant le démarrage et ne peuvent être blacklistés
ne peuvent être manipulés avec les commandes habituelles modinfo, lsmod, modprobe, insmod
Références
xmodulo - modules internes : http://ask.xmodulo.com/find-information-builtin-kernel-modules-linux.html
Sommaire
La liste des modules internes est disponible dans le fichier modules.builtin
$ cat /lib/modules/$(uname -r)/modules.builtin |sort |head
kernel/arch/x86/platform/intel/iosf_mbi.ko
kernel/arch/x86/video/fbdev.ko
kernel/block/bsg.ko
kernel/block/mq-deadline.ko
kernel/crypto/aead.ko
kernel/crypto/akcipher.ko
kernel/crypto/asymmetric_keys/asymmetric_keys.ko
kernel/crypto/asymmetric_keys/pkcs7_message.ko
kernel/crypto/asymmetric_keys/public_key.ko
kernel/crypto/asymmetric_keys/x509_key_parser.ko
Pour déterminer si un module, par exemple mousedev, est un module interne,
soit, vérifier s'il appartient à la liste des modules internes
$ cat /lib/modules/$(uname -r)/modules.builtin |grep mousedev
kernel/drivers/input/mousedev.ko
soit utiliser le message d'erreur de modprobe -r, en tentant un déchargement
$ sudo modprobe -r mousedev
modprobe: FATAL: Module mousedev is builtin.
Pour savoir si un module interne est utilisé, consulter
soit dmesg
$ sudo dmesg |grep mousedev
[ 1.401036] mousedev: PS/2 mouse device common for all mice
$ ls /sys/module |grep tcp_cubic
tcp_cubic
Les caractéristiques d'un module interne ne sont pas disponibles via modinfo
$ sudo modinfo mousedev
modinfo: ERROR: Module mousedev not found.
Pour accéder aux propriétés d'un module, il est nécessaire qu'il soit utilisé. Ses propriétés sont alors disponibles dans sysfs et peuvent être consultées
soit directement dans /sys/module/nom_du_module, par exemple, pour consulter les paramètres
$ ls /sys/module/mousedev/parameters/
tap_time xres yres
soit, plus commodément, via la commande systool du paquet sysfsutils
$ sudo aptitude install sysfsutils
$ sudo systool -v -m mousedev
Module = "mousedev"
Attributes:
uevent = <store method only>
Parameters:
tap_time = "200"
xres = "1024"
yres = "768"
Pour modifier temporairement un paramètre, (lorsque c'est possible), par exemple tap_time
identifier le chemin :
$ sudo find /sys/ -name tap_time
/sys/module/mousedev/parameters/tap_time
puis modifier la valeur :
$ sudo echo "300" >/sys/module/mousedev/parameters/tap_time
$ sudo systool -A tap_time -m mousedev
Module = "mousedev"
tap_time = "300"