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
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
See also my articles:
Intel 700 Series Network Adapters Firmware Update
Installing and updating the ixgbe driver
How to configure networking with Netplan
Configuring the Network in Linux