How to upgrade Intel 10G NIC firmware under Linux

firmwareintelnic

There is a Linux server with several Intel 82599ES cards:

# lspci | grep -i eth
01:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
01:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
02:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
02:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)

# ethtool -i enp1s0f0 | grep firmware-version
firmware-version: 0x18b30001

# ethtool -i enp2s0f0 | grep firmware-version
firmware-version: 0x800004d0

How to flash the newest firmware to these cards? Is it possible without rebooting?

Best Answer

Hardware firmware update

To get the updated firmware, obtain the BIOS/firmware update files for your server from your vendor. Any other method may break your warranty/support contract with them.

Corresponding kernel update

To ensure you have the latest kernel modules for your hardware, update your OS to the latest kernel supported by your OS vendor.

Without rebooting?

Not really. The hardware update most certainly will require a reboot for the new firmware to take effect.

If you have a supported hotpatch kernel in place, you could probably update the kernel without reboot then unload/reload the kernel modules for your NICs provided you are connected via console our other out-of-band methods such as idrac/ilo. You could even build the new kernel module and insmod it after unloading the old one. There is no guarentee the server will not have network problems using this method.