Установка драйвера TN40XX для сетевой карты на базе чипа Tehuti Networks TN4010 в ОС Linux

Сетевые карты на базе чипа TN4010 получают все более широкое распространение. Они встречаются в следующих продуктах:

  • D-Link DXE-810S;
  • Edimax EN-9320SFP+;
  • StarTech PEX10000SFP;
  • Synology E10G15-F1;
  • D-Link DXE-810T;
  • Edimax EN-9320TX-E;
  • EXSYS EX-6061-2;
  • Intellinet 507950;
  • StarTech ST10GSPEXNB.

Если вы стали обладателем данной карты, но вставив ее в сервер, не наблюдаете NIC, то у в ОС отсутствует необходимый для ее работы драйвер. Для MS Windows производитель предоставляет драйверы в скомпилированном формате, а для ОС Linux только в виде исходных кодов.

На первый взгляд может показаться, что заставить работать эту карту в Linux будет проблематично. В реальности, все делается элементарно с помощью DKMS — системы поддержки динамических модулей ядра.

Рассмотрим как собрать и установить драйвер для TN4010 за 1 минуту. Дальнейшие команды выполнялись в Ubuntu 18.04.

Установка DKMS

sudo apt-get update
sudo apt install dkms

Получение, сборка и установка драйвера

# получаем исходники, проверьте свежий релиз на github среди доступных
# веток, сейчас используется релиз release/tn40xx-v003
#
# https://github.com/acooks/tn40xx-driver
# 
sudo git clone -b release/tn40xx-003 https://github.com/acooks/tn40xx-driver.git /usr/src/tn40xx-003

# добавляем модуль
sudo dkms add -m tn40xx -v 003

# компилируем модуль
sudo dkms install -m tn40xx -v 003

Проверяем загрузку модуля

sudo modprobe tn40xx

# проверим, что модуль загружен
sudo lsmod | grep tn40xx

После выполнения данного действия у вас должна появиться новая сетевая карта. В нашем случае она получила имя enp2s0. Карта была протестирована на работоспособность с DAC-кабелем HP и коммутатором HP6600-24x.

Данная заметка была написана как перевод к документу из репозитория https://github.com/acooks/tn40xx-driver.