53 votes

Comment dresser une liste noire des modules du noyau ?

Comment désactiver le chargement des modules inutiles du noyau. Noyau 3.2.4

49voto

Jash Jacob Points 4212

Remarque : L'inscription sur liste noire ne fonctionne pas pour les modules qui sont intégrés dans l'image du noyau (c'est-à-dire qui ne sont pas chargés par l'intermédiaire d'un fichier .ko fichier. Le seul moyen de désactiver ces modules est d'utiliser un paramètre du noyau (s'il existe) ou de recompiler le noyau.

Il suffit d'ouvrir votre /etc/modprobe.d/blacklist et ajoutez le nom du pilote en utilisant la syntaxe suivante :

blacklist driver-name

EDIT : Dans les versions ultérieures depuis 12.10 (12.04 ?) le fichier est /etc/modprobe.d/blacklist.conf

Redémarrez votre machine et utilisez la commande lsmod pour afficher l'état des modules dans le noyau Linux.

Nota : ici driver-name est le nom du pilote de liste noire souhaité. Par exemple, si vous souhaitez désactiver le pilote de la carte NIC, vous pouvez trouver le nom du pilote du noyau de votre carte LAN en utilisant la commande lspci -v dans un terminal.
Par exemple, mon résultat est le suivant :

........
........ 
6:00.0 Ethernet controller: Broadcom Corporation NetLink BCM5906M Fast Ethernet PCI Express (rev 02)
    Subsystem: Lenovo Device 3861
    Flags: bus master, fast devsel, latency 0, IRQ 46
    Memory at b8000000 (64-bit, non-prefetchable) \[size=64K\]
    Expansion ROM at  \[disabled\]
    Capabilities: 
    Kernel driver in use: tg3
    Kernel modules: tg3
........
........

Ici, je vois que le conducteur est tg3 . vous devez donc écrire tg3 (ou votre chauffeur) à la place de driver-name .

De nombreuses informations peuvent être trouvées aquí .

30voto

Panther Points 96601

Vous pouvez également les blacklister temporairement sur la ligne de commande Grub (ligne linux) lorsque vous démarrez avec la syntaxe suivante

module_to_blacklist.blacklist=yes

17voto

Paul Nathan Points 22910

Une autre façon de blacklister les modules, au moins dans Ubuntu 16.04 LTS, est d'ajouter la ligne suivante à la ligne de commande du noyau :

modprobe.blacklist=MODULE_NAME

L'utilisation du système /etc/modprobe est la meilleure solution, mais il s'agit d'une alternative qui peut être utilisée en cas de besoin en éditant la ligne de commande Grub au démarrage.

Ceci peut également être rendu permanent en éditant /etc/default/Grub et en ajoutant au fichier GRUB_CMDLINE_LINUX_DEFAULT variable. Par exemple, dans mon /etc/default/Grub j'ai :

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash modprobe.blacklist=nouveau"

Ensuite, je cours update-grub2 entonces update-initramfs -u . Après un redémarrage, vous serez débarrassé du module, à condition que rien ne le charge après le démarrage.

Cette méthode fonctionne également avec les variantes EL (RHEL, CentOS, SciLinux), mais vous devrez utiliser les méthodes de cette distro pour mettre à jour Grub et l'initrd.

(Note à l'attention de ceux qui tentent d'inscrire Nouveau sur leur liste noire : Assurez-vous de ne pas charger X en exécutant systemctl set-default multi-user.target Sinon, lorsque X démarrera, il chargera à nouveau nouveau !)

5voto

wu-lee Points 311

Dans les versions plus récentes, vous devez utiliser la directive install dans votre fichier de liste noire

install modulename /bin/false

Remplacez "modulename" ci-dessus par le nom du module. Cela empêchera son chargement.

Vous pouvez trouver plus d'informations sur la directive install dans le manuel de modprobe.conf

man modprobe.conf

2voto

plop Points 29

Aucune de ces solutions n'a fonctionné sur 16.04 LTS pour i915.ko.

La solution (sale) que j'ai trouvée a consisté à 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 :{

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X