Установка и обновление драйвера ixgbe

Приведу пример установки или обновления ixgbe драйверов в Linux.

Посмотрим текущую версию (например у меня в Ubuntu Server 16.04 для HP 560SFP+ по умолчанию установилась версия ixgbe 4.2.1-k):

ethtool -i ens5f0
/sbin/modinfo ixgbe

Скачаем новую версию драйверов с официального сайта
https://downloadcenter.intel.com/download/14687/Intel-Network-Adapter-Driver-for-PCIe-Intel-10-Gigabit-Ethernet-Network-Connections-Under-Linux-
или
https://sourceforge.net/projects/e1000/files/ixgbe%20stable/

Или патченую версию драйвера для правильного распределения прерываний сетевой платы по ядра процессора при использовании QinQ
https://github.com/serhepopovych/ixgbe/tree/ixgbe-5.6.3/double-vlan

cd ~
git clone https://github.com/serhepopovych/ixgbe.git

Или:

cd ~
git clone --single-branch --branch ixgbe-5.6.3/double-vlan https://github.com/serhepopovych/ixgbe.git

Установим в системе необходимые компоненты:

apt install make gcc

Командами ниже становим драйвер, замечу что если ядро Linux было обновлено, то перезагрузим сервер перед установкой драйвера (модуль обычно записывается в /lib/modules/KERNEL_VERSION/updates/drivers/net/ethernet/intel/ixgbe/ixgbe.ko):

cd ixgbe/src/
make install

На ошибку ниже можно не обращать внимания, она просто означает что make не может найти ключи чтобы подписать драйвер:

SSL error:02001002:system library:fopen:No such file or directory: bss_file.c:175

После установки драйвера любой из команд выгрузим из памяти старый модуль драйвера:

modprobe -r ixgbe
rmmod ixgbe

И загрузим новый, который только что установили:

modprobe ixgbe

Проверим версию:

ethtool -i ens5f0

Чтобы Ubuntu загрузила новый драйвер при старте системы, а не старый, выполним:

update-initramfs -u

Для RedHat:

dracut --force

При необходимости укажем сетевому интерфейсу IP адрес (имя сетевого интерфейса можно увидеть например в логах набрав команду «dmesg -T»):

ip address add 192.168.2.2/32 dev eth0

Замечу что на некоторых версиях драйверов может быстро увеличиваться занятое пространство оперативной памяти, обычно это стает заметно по графикам спустя день или неделю. Стабильные версии в которых не было замечено утечки памяти были 5.6.3 и 5.3.8.
Если увеличивается, то можно например выгрузить и загрузить модуль ixgbe, чтобы понять в нем ли проблема (внимание, пропадет соединение с сервером):

rmmod ixgbe && modprobe ixgbe

Для поддержки сторонних SFP возможно придется загрузить модуль с опцией:

modprobe ixgbe allow_unsupported_sfp=1

Чтобы при запуске системы драйвер тоже загрузился с этой опцией укажем в файле /etc/modprobe.d/ixgbe.conf:

options ixgbe allow_unsupported_sfp=1

А также в файле /etc/default/grub укажем:

GRUB_CMDLINE_LINUX="ixgbe.allow_unsupported_sfp=1"

Применим изменения:

grub-mkconfig -o /boot/grub/grub.cfg

Смотрите также мою статью:
Распределение прерываний сетевой платы по ядрам процессора

Оставьте комментарий

Добавить комментарий