Другое

ethtool не отображает информацию о сетевом партнёре

Проблема с отображением информации о сетевом партнёре в ethtool для адаптера Exegate EXE-I350-T4V2 на Ubuntu 24.04.3. Узнайте причины и решения.

Почему в ethtool на Ubuntu 24.04.3 не отображается информация о сетевом партнёре (Link partner advertised link modes, Link partner advertised auto-negotiation) для сетевого адаптера Exegate EXE-I350-T4V2 (Intel NHI350AM4)? Проблема проявляется на 4-портовом гигабитном адаптере, подключенном через PCI-E x16, и сохраняется при подключении к разным устройствам, скоростям (100Base-TX и 1000Base-T) и кабелям, в отличие от встроенного Ethernet-адаптера, где информация выводится полностью. Версии ПО: ethtool 6.7, драйвер Intel igb 1.59.

Проблема с отображением информации о сетевом партнёре в ethtool для адаптера Exegate EXE-I350-T4V2 связана с ограничениями драйвера igb и особенностями реализации функции partner information в данном оборудовании. В отличие от более новых контроллеров, Intel I350 (на базе которого построен ваш адаптер) имеет определенные ограничения в поддержке расширенных параметров автосогласования, что проявляется в отсутствии данных о рекламных режимах партнёра (Link partner advertised link modes) и его настройках автосогласования.


Содержание


Основные причины проблемы

Отсутствие информации о сетевом партнёре в ethtool для Exegate EXE-I350-T4V2 вызвано несколькими ключевыми факторами:

Ограничения контроллера Intel I350
Intel I350, лежащий в основе вашего адаптера, является относительно старым поколением сетевых контроллеров, выпущенным еще в 2010-х годах. Согласно технической документации Intel, этот контроллер имеет функциональные ограничения в области детальной отчетности о параметрах автосогласования по сравнению с более современными решениями.

Проблемы реализации в драйвере igb
Драйвер igb версии 1.59, используемый в вашей системе, не полностью реализует возможность получения информации о рекламных режимах партнёра. Как указано в исходном коде драйвера, функция partner information поддерживается не для всех моделей контроллеров Intel и имеет ограничения в работе с определенными PHY-чипами.

Отсутствие поддержки в ethtool
Несмотря на то, что вы используете ethtool версии 6.7, который должен поддерживать расширенные функции автосегодования, конкретная реализация для Intel I350 может быть неполной. В документации Intel отмечается, что “драйверная информация, ранее отображаемая в /proc файловой системе, не поддерживается в этой версии”.


Технические особенности драйвера igb

Драйвер igb имеет специфические особенности реализации функций автосогласования:

Ограниченная поддержка MII
Intel I350 использует интерфейс управления средой (MII) для взаимодействия с PHY-чипом, который имеет ограничения в передаче расширенной информации о партнёре. В отличие от более современных контроллеров, использующих XGMII или QSGMII интерфейсы, I350 поддерживает только базовые функции MII.

Проблемы с EEE (Energy Efficient Ethernet)
Как показывают исследования сообщества, драйвер igb имеет проблемы с функцией EEE, которая тесно связана с параметрами автосогласования. В частности, функция EEE_LP_ADV_ADDR_I350 может возвращать ошибку -ENODATA, что указывает на отсутствие доступных данных о рекламных режимах партнёра.

Версионные ограничения
Версия драйвера 1.59 является относительно старой и не включает всех улучшений, внесенных в более поздние версии. На форуме Proxmox пользователи сообщают о схожих проблемах с более старыми версиями драйвера.


Способы решения и обхода

Существуют несколько подходов к решению проблемы отсутствия информации о сетевом партнёре:

Обновление драйвера до последней версии
Самым эффективным решением является обновление драйвера igb до последней доступной версии. Вы можете скачать актуальный драйвер с официального сайта Intel. Последние версии драйвера содержат исправления для работы с функциями автосогласования.

bash
# Проверка текущей версии драйвера
ethtool -i eth0

# Компиляция и установка обновленного драйвера
make clean
make
sudo make install
sudo modprobe -r igb
sudo modprobe igb

Использование альтернативных утилит
Для получения информации о сетевом партнёре можно использовать специализированные утилиты:

  1. mii-tool
bash
sudo apt install net-tools
mii-tool -v eth0
  1. ethtool с флагами -k и -a
bash
ethtool -k eth0      # Проверка параметров offload
ethtool -a eth0      # Проверка параметров автосогласования

Настройка параметров автосогласования
Иногда проблема решается принудительной установкой режимов автосогласования:

bash
# Установка режима 1000Base-Full
sudo ethtool -s eth0 speed 1000 duplex full autoneg on

# Проверка результата
sudo ethtool eth0

Проверка альтернативными методами

Несмотря на отсутствие информации в ethtool, существуют другие способы проверки состояния соединения:

Использование /proc/sys/net/ipv4/conf/

bash
cat /proc/sys/net/ipv4/conf/eth0/arp_announce
cat /proc/sys/net/ipv4/conf/eth0/arp_ignore

Проверка через sysfs

bash
# Просмотр информации о PHY
cat /sys/class/net/eth0/phylink/phy_name
cat /sys/class/net/eth0/operstate
cat /sys/class/net/eth0/carrier

Использование утилиты ethtool с расширенными опциями

bash
# Проверка статистики адаптера
ethtool -S eth0

# Проверка регистров PHY
ethtool -m eth0

Проверка через lspci

bash
lspci -vnn -d 8086:1528

Рекомендации по обновлению ПО

Для обеспечения максимальной совместимости и функциональности:

Обновление ядра Linux
Убедитесь, что вы используете актуальное ядро Linux, которое включает последние улучшения для драйвера igb:

bash
# Проверка текущей версии ядра
uname -r

# Обновление ядра (для Ubuntu)
sudo apt update
sudo apt upgrade linux-generic
sudo reboot

Обновление прошивки адаптера
Иногда проблема связана с устаревшей прошивкой сетевого адаптера. Вы можете обновить прошивку с помощью утилиты Intel:

bash
# Скачивание утилиты обновления прошивки
wget https://downloadmirror.intel.com/783357/BootImg.FLB

# Обновление прошивки (требуется осторожность)
sudo bootutil64e -UP=PXE -ALL -FILE=BootImg.FLB

Проверка совместимости оборудования
Убедитесь, что ваш Exegate EXE-I350-T4V2 совместим с используемой версией Ubuntu. Согласно документации Exegate, адаптер должен работать с Ubuntu, но возможны нюансы с конкретными ревизиями оборудования.


Источники

  1. Intel® Ethernet Server Adapter I350-T4V2 - Product Specifications
  2. Linux* Base Driver for Intel® Gigabit Ethernet Network Connections
  3. Intel I350 (igb driver) support - GitHub Issue
  4. linux/drivers/net/ethernet/intel/igb/igb_ethtool.c
  5. No driver for Intel i350-T4V2? - Proxmox Support Forum
  6. Lan card ExeGate EXE-I350-T4V2 (NHI350AM4) - Specification

Заключение

Проблема отсутствия информации о сетевом партнёре в ethtool для Exegate EXE-I350-T4V2 вызвана техническими ограничениями контроллера Intel I350 и драйвера igb. Ключевые выводы:

  1. Причина проблемы - ограничения аппаратного обеспечения и драйвера в области детальной отчетности о параметрах автосогласования
  2. Основное решение - обновление драйвера igb до последней версии и прошивки адаптера
  3. Альтернативные методы - использование mii-tool, проверка через sysfs и анализ статистики адаптера
  4. Профилактика - регулярное обновление ядра Linux и мониторинг состояния оборудования

Для полного решения проблемы рекомендуется сначала попробовать обновить драйвер, а затем, при необходимости, использовать комбинацию альтернативных методов для мониторинга состояния сетевого соединения. Если проблема сохраняется, стоит рассмотреть возможность использования более современного сетевого адаптера, который лучше поддерживает функции детальной отчетности.

Авторы
Проверено модерацией
Модерация