Comment désactiver le chargement de modules de noyau inutiles. Noyau 3.2.4
Remarque: la liste noire ne fonctionnera pas pour les modules intégrés à l'image du noyau (c'est-à-dire non chargés via un fichier
.ko
séparé La seule façon de désactiver ces modules consiste à utiliser un paramètre de noyau (si disponible) ou à recompiler le noyau.
Ouvrez simplement votre fichier /etc/modprobe.d/blacklist
et ajoutez le nom de l’utilisateur à l’aide de la syntaxe suivante:
blacklist driver-name
EDIT: Dans les versions ultérieures à partir de 12.10 (12.04?), Le fichier est /etc/modprobe.d/blacklist.conf
Redémarrez votre ordinateur et utilisez la commande lsmod pour afficher l'état des modules dans le noyau Linux.
Remarque : ici driver-name
est le nom du pilote de votre liste noire souhaité. Par exemple, si vous souhaitez désactiver le pilote de carte NIC, vous pouvez trouver le nom du pilote de noyau de votre carte LAN à l'aide de la commande command lspci -v
dans un terminal.
Par exemple, ma sortie était:
........ ........ 6: 00.0 Contrôleur Ethernet: Broadcom Corporation NetLink BCM5906M Fast Ethernet PCI Express (rév. 02) Sous-système: Lenovo Device 3861 Indicateurs: maître du bus, développement rapide, latence 0, IRQ 46 Mémoire sur b8000000 (64 bits, non préfabriquée) [taille = 64K] Extension ROM à [désactivé] Fonctionnalités: Pilote du noyau utilisé: tg3 Modules du noyau: tg3 .. ...... ........
Ici, je vois que le pilote est tg3
. vous devez donc écrire tg3
(ou votre pilote) à la place de driver-name
.
Beaucoup d'informations peuvent être trouvées ici .
Vous pouvez aussi temporairement les mettre en liste noire sur la ligne de commande grub (ligne linux) lorsque vous démarrez avec la syntaxe
module_to_blacklist.blacklist=yes
Une autre façon de répertorier des modules dans au moins Ubuntu 16.04 LTS consiste à ajouter la ligne suivante à la ligne de commande du noyau:
modprobe.blacklist=MODULE_NAME
Utiliser le système/etc/modprobe est la meilleure solution, mais c’est une alternative qui peut être utilisée rapidement en modifiant votre ligne de commande GRUB au démarrage.
Cela peut aussi être rendu permanent en éditant/etc/default/grub et en ajoutant à la variable GRUB_CMDLINE_LINUX_DEFAULT
. Par exemple, dans mon/etc/default/grub, j'ai:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash modprobe.blacklist=nouveau"
Ensuite, je lance update-grub2
, puis update-initramfs -u
. Après un redémarrage, vous serez libre du module, tant que rien ne le chargera après le démarrage.
Cette méthode fonctionne également dans les variantes EL (RHEL, CentOS, SciLinux), mais vous devrez utiliser les méthodes de cette distribution pour mettre à jour grub et l'initrd.
(Remarque à l'intention de ceux qui tentent de placer Blacklist sur nouvelle liste: veillez à ne pas charger X en exécutant systemctl set-default multi-user.target
, sinon, lorsque X démarrera, il chargera de nouveau nouveau!)
Aucune de ces solutions ne fonctionnait avec 16.04 LTS pour i915.ko.
La solution (sale) que j'ai trouvée était de renommer
/lib/modules/4.4.0-22-generic/kernel/drivers/gpu/drm/i915/i915.ko
/usr/lib/xorg/modules/drivers/modesetting_drv.so
/usr/lib/xorg/modules/drivers/intel_drv.so
Malheureusement, l'écran VGA externe n'est plus reconnu: {
Dans les versions plus récentes, vous devez utiliser la directive install dans votre fichier de liste noire.
install modulename /bin/false
Remplacez "nom du module" ci-dessus par le nom du module. Cela empêchera de force son chargement.
Vous trouverez plus d’informations sur la directive d’installation dans le manuel de modprobe.conf.
man modprobe.conf