Intel i40e driver update

For example, I will take an Intel XL710-QDA1 QSFP+ network adapter and a couple more with an Intel chip, for example, HPE 562SFP+, I will install them in an HPE DL380 Gen10 server running Ubuntu Server 18.04.

Switch to root user:

sudo su

Install the necessary components before updating the driver:

apt install make gcc

Let’s see the current driver version:

lsmod | grep i40e
modinfo i40e | grep ver
ethtool -i ens2

Then I looked to see if there is a new driver version on the official website:
https://downloadcenter.intel.com/ru/download/24411/-Intel-PCIe-40-Linux-
At the time of this writing, the newest version is 2.13.10, which is newer than the one installed by default in Ubuntu Server 18.04.

Then I downloaded the archive with the driver and unpacked it:

tar -zxvf i40e-2.13.10.tar.gz

I also recommend looking at the official instructions:

less i40e-2.13.10/README

Let’s go to the src directory, which is in the folder with the driver:

cd i40e-2.13.10/src

And install the driver:

make install

Warning! On some operating systems, the names of network interfaces may change and you will either have to rename them as they were or change the network settings to new names. For example, after updating the driver on Ubuntu Server 20.04, all names changed to ethX, but on Ubuntu Server 18.04, the names did not change.
Before executing the commands below, remember the MAC addresses of the required network interfaces in advance, so that later you don’t have to look for which interface:

ip a
lshw -C network | less

Unload and load the new driver:

rmmod i40e; modprobe i40e
update-initramfs -u

Make sure the new driver is being used:

lsmod | grep i40e
modinfo i40e | grep ver
ethtool -i ens2

Let’s reboot the system and make sure that it starts without errors:

reboot

By the way, I used non-original 5m DAC cables stitched for Intel, and also executed the commands below on the Cisco Nexus switch, without them the link did not up:

interface Ethernet1/51
	no negotiate auto
	duplex full

I want to note that if you update the operating system kernel with the commands below, then most likely the standard version of the i40e driver will be loaded, so you will need to reinstall it:

apt update
apt upgrade

After updating the driver, it is highly recommended to update the firmware to avoid compatibility issues, for example, there is a table with tested versions at the link below:
http://doc.dpdk.org/guides/nics/i40e.html#recommended-matching-list

Important! The new driver may not work with the old firmware, or vice versa, that is, the network will not work, I had such cases, so you need to download the latest driver and network adapter firmware to the server in advance in order to successfully update them.

See also my articles:
Intel 700 Series Network Adapters Firmware Update
Renaming Network Interfaces in Linux
Installing and updating the ixgbe driver
How to configure networking with Netplan
Configuring the Network in Linux

Leave a comment

Leave a Reply