Fixing ixgbe unsupported SFP+ module type was detected

From Leo's Notes
Last edited on 18 August 2023, at 21:41.

Troubleshooting[edit | edit source]

failed to initialize because an unsupported SFP+ module type was detected.[edit | edit source]

A server was not able to detect a new SFP module that was inserted. Digging into the kernel logs, the kernel had previously complained about this slot:

[Fri Sep  6 14:46:25 2019] ixgbe 0000:01:00.1: Multiqueue Enabled: Rx Queue count = 63, Tx Queue count = 63
[Fri Sep  6 14:46:25 2019] ixgbe 0000:01:00.1: PCI Express bandwidth of 32GT/s available
[Fri Sep  6 14:46:25 2019] ixgbe 0000:01:00.1: (Speed:5.0GT/s, Width: x8, Encoding Loss:20%)
[Fri Sep  6 14:46:25 2019] ixgbe 0000:01:00.1: MAC: 2, PHY: 18, SFP+: 5, PBA No: G61346-000
[Fri Sep  6 14:46:25 2019] ixgbe 0000:01:00.1: b8:ca:3a:xx:xx:xx
[Fri Sep  6 14:46:25 2019] ixgbe 0000:01:00.1: Intel(R) 10 Gigabit Network Connection
[Tue Nov 12 11:52:31 2019] ixgbe 0000:01:00.1: registered PHC device on em2
[Tue Nov 12 11:52:31 2019] ixgbe 0000:01:00.1: failed to initialize because an unsupported SFP+ module type was detected.
[Tue Nov 12 11:52:31 2019] ixgbe 0000:01:00.1: Reload the driver after installing a supported module.
[Tue Nov 12 11:52:31 2019] ixgbe 0000:01:00.1: removed PHC on em2

If the new SFP is supported, try reloading the kernel module. If your connection to the server relies on this adapter, keep in mind that the module might fail to load and you may lose your connection. Worse yet (and it happened to me on a CentOS 7.4 with a Intel 82599ES card), your kernel could crash and your host will need to reboot.

# rmmod ixgbe
# modprobe ixgbe

If the SFP still doesn't work, you can try defining the option allow_unsupported_sfp=1 for the ixgbe kernel module using a custom modprobe.d config or via a kernel parameter:

# echo "allow_unsupported_sfp=1" > /etc/modprobe.d/ixgbe.conf

## or append to GRUB_CMDLINE_LINUX in /etc/default/grub 'ixgbe.allow_unsupported_sfp=1'
# vi /etc/default/grub
# grub-mkconfig -o /boot/grub/grub.cfg

See Also[edit | edit source]