Kernel-Modul deaktivieren, das im Kernel kompiliert ist (nicht geladen)


18

Mein Server verfügt über zwei 1-Gbit- und zwei 10-Gbit-Onboard-Netzwerkkarten.

Ich muss die 1-Gbit-Netzwerkkarten komplett deaktivieren, damit ifconfig -asie nicht angezeigt werden.

Die Netzwerkkarten verwenden verschiedene Kernelmodule. Die 10-Gbit-Nutzung ixgbeund die 1-Gbit-Nutzung 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 

Beide ixgbeund igbwerden statisch im Kernel kompiliert (nicht als ladbares Modul). Ich muss das Modul mithilfe der Kernel-Boot-Parameter deaktivieren.

Ich habe versucht, Folgendes an meinen Kernel anzuhängen, aber es hat keine Auswirkung:

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

Die igb-Netzwerkkarten werden weiterhin angezeigt

Wie kann ich igb komplett deaktivieren?

Antworten:


30

Sie sollten in der Lage sein, das igb„Modul“ auch im eingebauten Zustand auf eine schwarze Liste zu setzen, indem Sie seine Initialisierungsfunktion auf die schwarze Liste setzen: add

initcall_blacklist=igb_init_module

zu den Boot-Parametern Ihres Kernels.

Siehe Wie deaktiviere ich die I2C Designware-Unterstützung, wenn sie nicht als Modul erstellt wurde? für Hintergrundinformationen. Das allgemeine Rezept hier ist, nach dem Modul im Kernel-Quellcode zu suchen und nach Funktionen zu suchen, die das __initAttribut haben - es sollte nur eine Funktion geben, die als Hauptinitialisierungsfunktion erkennbar ist (normalerweise in einer module_initDeklaration angegeben). Sperren Sie das, und der Treiber wird nicht initialisiert.


4
Für diejenigen, denen es wichtig ist, erschien der initcall_blacklistParameter in Linux 3.16 .
Ruslan

1
ist <modulename>_init_moduleder kanonische Name für alle Elemente, die als Modul erstellt werden können?
Bananguin

1
@Bananguin leider nicht, es gibt einige, die angerufen werden ..._init_moduleoder ..._module_initaber sie folgen nicht allen diesen Mustern.
Stephen Kitt
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.