My server has two 1-Gbit and two 10-Gbit onboard network cards.
I need to disable the 1-Gbit network cards completely, so that ifconfig -a
does not show them.
The network cards use different kernel modules. The 10-Gbit use ixgbe
, and the 1-Gbit use 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
Both ixgbe
and igb
are compiled statically in the kernel (not as a loadable module). I need to disable the module using the kernel boot parameters.
I have tried appending the following to my kernel, but it has no effect:
igb.blacklist=yes
igb.enable=0
igb.disable=yes
the igb network cards are still showing
How can I disable igb completely ?
Best Answer
You should be able to blacklist the
igb
“module”, even when built-in, by blacklisting its initialisation function: addto your kernel’s boot parameters.
See How do I disable I2C Designware support when it's not built as a module? for background information. The general recipe here is to look for the module in the kernel source code, and look for functions which have the
__init
attribute — there should only be one readily identifiable as the main initialisation function (typically referred to in amodule_init
declaration). Blacklist that, and the driver won’t be initialised.