désactiver le module du noyau qui est compilé dans le noyau (non chargé)


18

Mon serveur dispose de deux cartes réseau embarquées 1 Gbit et de 10 Gbit.

Je dois désactiver complètement les cartes réseau 1 Gbit, de sorte que ifconfig -acela ne les affiche pas.

Les cartes réseau utilisent différents modules du noyau. L'utilisation à 10 Gbit ixgbeet l'utilisation à 1 Gbit igb.

01:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
Subsystem: Dell Ethernet 10G 4P X520/I350 rNDC
Kernel driver in use: ixgbe

05:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
Subsystem: Dell I350 Gigabit Network Connection
Kernel driver in use: igb 

Les deux ixgbeet igbsont compilés statiquement dans le noyau (pas en tant que module chargeable). J'ai besoin de désactiver le module en utilisant les paramètres de démarrage du noyau.

J'ai essayé d'ajouter ce qui suit à mon noyau, mais cela n'a aucun effet:

igb.blacklist=yes
igb.enable=0
igb.disable=yes

les cartes réseau igb montrent toujours

Comment puis-je désactiver complètement l'igb?

Réponses:


30

Vous devriez pouvoir mettre sur liste noire le igb«module», même lorsqu'il est intégré, en mettant sur liste noire sa fonction d'initialisation: ajouter

initcall_blacklist=igb_init_module

aux paramètres de démarrage de votre noyau.

Voir Comment désactiver le support I2C Designware lorsqu'il n'est pas construit en tant que module? pour des informations générales. La recette générale ici consiste à rechercher le module dans le code source du noyau et à rechercher les fonctions qui ont l' __initattribut - il ne devrait y en avoir qu'une facilement identifiable comme la fonction d'initialisation principale (généralement désignée dans une module_initdéclaration). Mettez cela en liste noire et le pilote ne sera pas initialisé.


4
Pour ceux à qui cela compte, le initcall_blacklistparamètre est apparu sous Linux 3.16 .
Ruslan

1
est <modulename>_init_modulele nom canonique de chacun et de tout ce qui peut être construit en tant que module?
Bananguin

1
@Bananguin malheureusement pas, il y en a quelques-uns appelés ..._init_moduleou ..._module_initmais ils ne suivent pas tous ces modèles.
Stephen Kitt
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.