kernel - modules : Charger, décharger, blacklister
Table des matières
Cet article liste quelques astuces pour les modules sous Linux.
Le but, avoir un article pratique qui explique tout sur les modules.
Pour lister les modules présents et chargés dans le système, la commande est lsmod :
Voici un exemple de sortie sur un serveur RHEL7 :
Il peut être utile d'utiliser grep pour filtrer la sortie.
Pour charger un module, lorsque le système est en cours d'utilisation, il faut utiliser la commande modprobe :
Mais, lorsqu'on redémarre le système, si ce module n'est plus chargé, il existe un dossier /etc/modules-load.d/ qui contient une liste de fichiers .conf. Dedans, le nom du module est à inscrire.
Exemple avec le module asus-nb-wmi :
Voici un exemple avec les 3 modules de VirtualBox :
Pour une raison donnée; on peut aussi décharger un module. Pour cela, on utilise la commande rmmod . Exemple avec le module floppy :
Pour vérifier qu'il est bien déchargé, on peut faire (ça ne doit rien renvoyer) :
On peut aussi blacklister un module. Le module incriminé est alors placé dans une liste noire et ne sera plus chargé au démarrage. Par exemple, avec le module du beep interne :
Introduction
Cet article liste quelques astuces pour les modules sous Linux.
Le but, avoir un article pratique qui explique tout sur les modules.
Lister les modules
Pour lister les modules présents et chargés dans le système, la commande est lsmod :
Code BASH :
lsmod
Voici un exemple de sortie sur un serveur RHEL7 :
Code TEXT :
Module Size Used by intel_powerclamp 14419 0 coretemp 13444 0 iosf_mbi 13523 0 crc32_pclmul 13113 0 ppdev 17671 0 ghash_clmulni_intel 13259 0 aesni_intel 69884 0 lrw 13286 1 aesni_intel gf128mul 14951 1 lrw glue_helper 13990 1 aesni_intel ablk_helper 13597 1 aesni_intel cryptd 20359 3 ghash_clmulni_intel,aesni_intel,ablk_helper vmw_balloon 18190 0 pcspkr 12718 0 sg 40721 0 vmw_vmci 67106 0 i2c_piix4 22106 0 shpchp 37032 0 parport_pc 28165 0 parport 42348 2 ppdev,parport_pc ip_tables 27115 0 ext4 583541 3 mbcache 14958 1 ext4 jbd2 102945 1 ext4 sr_mod 22416 0 cdrom 42556 1 sr_mod ata_generic 12910 0 pata_acpi 13038 0 sd_mod 46322 3 crc_t10dif 12714 1 sd_mod crct10dif_generic 12647 0 crct10dif_pclmul 14289 1 crct10dif_common 12595 3 crct10dif_pclmul,crct10dif_generic,crc_t10dif crc32c_intel 22079 0 vmwgfx 235043 1 drm_kms_helper 146456 1 vmwgfx serio_raw 13462 0 syscopyarea 12529 1 drm_kms_helper sysfillrect 12701 1 drm_kms_helper sysimgblt 12640 1 drm_kms_helper fb_sys_fops 12703 1 drm_kms_helper ttm 93908 1 vmwgfx ata_piix 35038 0 vmxnet3 53833 0 mptspi 22542 2 scsi_transport_spi 30732 1 mptspi mptscsih 40150 1 mptspi mptbase 105960 2 mptspi,mptscsih drm 372540 4 ttm,drm_kms_helper,vmwgfx i2c_core 40756 3 drm,i2c_piix4,drm_kms_helper libata 247095 3 pata_acpi,ata_generic,ata_piix floppy 69417 0 fjes 32197 0 dm_mirror 22135 0 dm_region_hash 20862 1 dm_mirror dm_log 18411 2 dm_region_hash,dm_mirror dm_mod 114430 11 dm_log,dm_mirror
Il peut être utile d'utiliser grep pour filtrer la sortie.
Charger un module
Pour charger un module, lorsque le système est en cours d'utilisation, il faut utiliser la commande modprobe :
Code BASH :
modprobe module
Mais, lorsqu'on redémarre le système, si ce module n'est plus chargé, il existe un dossier /etc/modules-load.d/ qui contient une liste de fichiers .conf. Dedans, le nom du module est à inscrire.
Exemple avec le module asus-nb-wmi :
Code BASH :
echo "asus-nb-wmi" > /etc/modules-load.d/asus.conf
Voici un exemple avec les 3 modules de VirtualBox :
Code BASH :
cat /etc/modules-load.d/VirtualBox.conf vboxdrv vboxnetflt vboxnetadp
Décharger un module
Pour une raison donnée; on peut aussi décharger un module. Pour cela, on utilise la commande rmmod . Exemple avec le module floppy :
Code BASH :
modprobe -rf floppy
Pour vérifier qu'il est bien déchargé, on peut faire (ça ne doit rien renvoyer) :
Code BASH :
lsmod | grep floppy
Blacklister un module
On peut aussi blacklister un module. Le module incriminé est alors placé dans une liste noire et ne sera plus chargé au démarrage. Par exemple, avec le module du beep interne :
Code BASH :
echo "blacklist pcspkr" >> /etc/modprobe.d/blacklist