Для примера возьму сетевой адаптер Intel XL710-QDA1 QSFP+ и еще пару с чипом Intel, например HPE 562SFP+, установлю их в сервер HPE DL380 Gen10 с операционной системой Ubuntu Server 18.04.
Переключимся на root пользователя:
sudo -i
Установим необходимые компоненты перед обновлением драйвера:
apt install make gcc
Посмотрим текущую версию драйвера:
lsmod | grep i40e
modinfo i40e | grep ver
ethtool -i ens2
Потом я посмотрел есть ли новая версия драйвера на официальном сайте:
https://downloadcenter.intel.com/ru/download/24411/-Intel-PCIe-40-Linux-
На момент написания статьи, самой новой версией была 2.13.10, новее чем установленная по умолчанию в Ubuntu Server 18.04.
Также я сохранил тут i40e-2.20.12.tar.gz
Потом я скачал архив с драйвером и распаковал:
tar -zxvf i40e-2.13.10.tar.gz
Рекомендую также посмотреть официальную инструкцию:
less i40e-2.13.10/README
Перейдем в директорию src, что в папке с драйвером:
cd i40e-2.13.10/src
И установим драйвер:
make install
Предупреждение! На некоторый операционных системах могут изменится имена сетевых интерфейсов и придется либо их переименовать как были или изменять настройки сети под новые имена. Например после обновления драйвера на Ubuntu Server 20.04 все имена изменились к виду ethX, а на Ubuntu Server 18.04 имена не изменялись.
Перед выполнением команд ниже заранее запомним MAC адреса нужных сетевых интерфейсов, чтобы потом не искать где какой интерфейс:
ip a
lshw -C network | less
Выгрузим и загрузим новый драйвер:
rmmod i40e; modprobe i40e
update-initramfs -u
Убедимся что используется новый драйвер:
lsmod | grep i40e
modinfo i40e | grep ver
ethtool -i ens2
Перезагрузим систему и убедимся что она запустилась без ошибок:
reboot
Кстати я использовал не оригинальные DAC кабели 5m прошитые под Intel, а также выполнил на коммутаторе Cisco Nexus команды ниже, без них линк не поднимался:
interface Ethernet1/51
no negotiate auto
duplex full
Хочу заметить, что если вы выполните обновления ядра операционной системы командами ниже, то скорее всего загрузится стандартная версия i40e драйвера, по этому нужно будет его установить повторно:
apt update
apt upgrade
После обновления драйвера настоятельно рекомендуется обновить прошивку чтобы избежать проблем с совместимостью, например по ссылке ниже есть таблица с протестированными версиями:
http://doc.dpdk.org/guides/nics/i40e.html#recommended-matching-list
Важно! Новый драйвер может не работать со старой прошивкой, или на оборот, то есть сеть не будет работать, у меня были такие случаи, по этому на сервер необходимо заранее скачать последнюю версию драйвера и прошивки сетевого адаптера, чтобы успешно их обновить.
Смотрите также мои статьи:
- Обновление прошивки Intel 700 серии сетевых адаптеров
- Решение BUG: Bad page state in process kworker
- Переименование сетевых интерфейсов в Linux
- Установка и обновление драйвера ixgbe
- Настройка Netplan
- Настройка сети в Linux