"Unsupported module type was detected" during boot of Intel X520/I350 card in Dell PowerEdge R630

miho asked:

I’ve purchased a Dell PowerEdge R630 with an integrated Intel X520/I350 (2x SFP + 2x RJ45) network card. I’ve setup the server locally (on a 1G RJ45 network) to test that everything worked as expected and it did; everything worked, no error messages.

Then I shipped it to the datacenter and let them rack it up for me. As defined in the colocation agreement, they connected the server using a 10G (SFP+) port. As somebody with little to no SFP+ experience, I – naively – assumed it will "just work", but when I tried to (re)install the operating system via iDRAC/VNC and noticed that the one connected SFP+ network link was missing (there is only eno2 to eno4, no eno1). Thought, iDRAC shows the first port as connected.

I first thought Linux is missing some drivers, but then I noticed that there is already an error message during the boot process (before the operating system gets loaded):

As already mentioned, I got barely any knowledge about SFP+ networks which puts me in a rather uncomfortable position: I can’t even tell whether thats a hardware issue (such as a compatibility issue with the installed SFP+ module) or a software/configuration issue. Any ideas what I should look at?

My answer:

This Intel NIC does have an on-device whitelist of SFP+ modules it will accept, but it is possible to disable this and attempt to use whatever SFP+ module you want. You need to pass the ixgbe module parameter allow_unsupported_sfp=1.

You can test whether this will work by unloading and reloading the module with the option given:

# rmmod ixgbe
# modprobe ixgbe allow_unsupported_sfp=1

The usual way to make this persistent is to add the module option to a file such as /etc/modprobe.d/ixgbe.conf and then run sudo update-initramfs on Debian based systems or sudo dracut -f on Red Hat based systems. The content of that file would be:

options ixgbe allow_unsupported_sfp=1

It can also be added to the kernel command line at boot, i.e.: ixgbe.allow_unsupported_sfp=1 so that you can use it in an installation environment.

View the full question and any other answers on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.