Linux and Intel 82599ES 10-Gigabit SFI/SFP+ link always down
I have HP ProLiant dl360 gen 9, when server starts i have link on Intel 82599ES.
After start linux (Slackware 14.2 kernel 4.4.19) link is down (something like spf power is down?).
How can I fix it?
# lspci | grep Network 04:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) 04:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) # ethtool eth0 Settings for eth0: Supported ports: [ FIBRE ] Supported link modes: 10000baseT/Full Supported pause frame use: No Supports auto-negotiation: No Advertised link modes: 10000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: No Speed: Unknown! Duplex: Unknown! (255) Port: FIBRE PHYAD: 0 Transceiver: external Auto-negotiation: off Supports Wake-on: umbg Wake-on: g Current message level: 0x00000007 (7) drv probe link Link detected: no # ethtool -i eth0 driver: ixgbe version: 4.2.1-k firmware-version: 0x80000887 expansion-rom-version: bus-info: 0000:04:00.0 supports-statistics: yes supports-test: yes supports-eeprom-access: yes supports-register-dump: yes supports-priv-flags: no # lsmod |grep -E 'ixgbe|mdio|igb|ioat|dca' ixgbe 221749 0 vxlan 34494 1 ixgbe ptp 12164 2 tg3,ixgbe mdio 3973 1 ixgbe ioatdma 33129 0 dca 6585 2 ixgbe,ioatdma hwmon 4199 4 tg3,ixgbe,coretemp,acpi_power_meter # ethtool -m eth0 Identifier : 0x03 (SFP) Extended identifier : 0x04 (GBIC/SFP defined by 2-wire interface ID) Connector : 0x07 (LC) Transceiver codes : 0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x00 Transceiver type : 10G Ethernet: 10G Base-SR Encoding : 0x06 (64B/66B) BR, Nominal : 10300MBd Rate identifier : 0x00 (unspecified) Length (SMF,km) : 0km Length (SMF) : 0m Length (50um) : 80m Length (62.5um) : 30m Length (Copper) : 0m Length (OM3) : 300m Laser wavelength : 850nm Vendor name : FINISAR CORP. Vendor OUI : 00:90:65 Vendor PN : FTLX8571D3BCL-HP Vendor rev : A Option values : 0x00 0x1a Option : RX_LOS implemented Option : TX_FAULT implemented Option : TX_DISABLE implemented BR margin, max : 0% BR margin, min : 0% Vendor SN : MVA0TLN Date code : 16031211 Optical diagnostics support : Yes Laser bias current : 0.000 mA Laser output power : 0.0062 mW / -22.08 dBm Receiver signal average optical power : 0.0000 mW / -inf dBm Module temperature : 28.81 degrees C / 83.86 degrees F Module voltage : 3.3293 V Alarm/warning flags implemented : Yes Laser bias current high alarm : Off Laser bias current low alarm : On Laser bias current high warning : Off Laser bias current low warning : On Laser output power high alarm : Off Laser output power low alarm : On Laser output power high warning : Off Laser output power low warning : On Module temperature high alarm : Off Module temperature low alarm : Off Module temperature high warning : Off Module temperature low warning : Off Module voltage high alarm : Off Module voltage low alarm : Off Module voltage high warning : Off Module voltage low warning : Off Laser rx power high alarm : Off Laser rx power low alarm : On Laser rx power high warning : Off Laser rx power low warning : On Laser bias current high alarm threshold : 13.200 mA Laser bias current low alarm threshold : 4.000 mA Laser bias current high warning threshold : 12.600 mA Laser bias current low warning threshold : 5.000 mA Laser output power high alarm threshold : 1.0000 mW / 0.00 dBm Laser output power low alarm threshold : 0.2512 mW / -6.00 dBm Laser output power high warning threshold : 0.7943 mW / -1.00 dBm Laser output power low warning threshold : 0.3162 mW / -5.00 dBm Module temperature high alarm threshold : 78.00 degrees C / 172.40 degrees F Module temperature low alarm threshold : -13.00 degrees C / 8.60 degrees F Module temperature high warning threshold : 73.00 degrees C / 163.40 degrees F Module temperature low warning threshold : -8.00 degrees C / 17.60 degrees F Module voltage high alarm threshold : 3.7000 V Module voltage low alarm threshold : 2.9000 V Module voltage high warning threshold : 3.6000 V Module voltage low warning threshold : 3.0000 V Laser rx power high alarm threshold : 1.0000 mW / 0.00 dBm Laser rx power low alarm threshold : 0.0100 mW / -20.00 dBm Laser rx power high warning threshold : 0.7943 mW / -1.00 dBm Laser rx power low warning threshold : 0.0158 mW / -18.01 dBm
Intel 10Gbit и несовместимый SFP+ модуль
Итак, есть сервер под CentOS 7 , в котором установлена сетевая карта Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01), хотя может быть и другая аналогичная от Intel. Проблема заключается в том, что не все SFP+ модули будут в ней работать, например EX-SFP-10GE-LR или EX-SFP-10GE-LR-С отказываются запускаться с ошибкой:
ixgbe 0000:04:00.0: failed to load because an unsupported SFP+ module type was detected.
В общем, отсюда следует, что сетевая карта не знает такой SFP модуль и не уверена, что сможет с ним работать. Но эту проблему можно обойти и запустить их работать в паре, только если это запускается в продакшене, то лучше хорошо всё протестировать после запуска.
Для успешного запуска такого модуля в первую очередь нужно выгрузить драйвер командой
после чего загружаем его обратно с опцией allow_unsupported_sfp=1 командой
modprobe ixgbe allow_unsupported_sfp=1
Если после данных манипуляций сетевой интерфейс успешно определился можно перезапустить сеть или поднять его вручную и убедиться в корректной работе. Если сетевых интерфейсов несколько, то может потребоваться прописать 1 для каждого из них, делается это по количеству и через запятую. Для четырех интерфейсов опция будет выглядеть так: allow_unsupported_sfp=1,1,1,1 . Для обеспечения автоматического применения данной опции следует прописать ей в соответствующий конфигурационный файл, например /etc/modprobe.d/ixgbe.conf : options ixgbe allow_unsupported_sfp=1
Данная опция позволит подгрузить модуль с опцией через modprobe, однако всё равно после ребута не поможет, тут потребуется дописать следующую опцию для ядра через конфиг загрузчика (grub): ixgbe.allow_unsupported_sfp=1
Ну и, конечно, не забыть обновить конфигурацию GRUB после внесения изменений в конфиг.
Как обновить прошивку Intel 10G NIC под Linux
Есть Linux-сервер с несколькими картами Intel 82599ES:
# lspci | grep -i eth 01:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) 01:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) 02:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) 02:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) # ethtool -i enp1s0f0 | grep firmware-version firmware-version: 0x18b30001 # ethtool -i enp2s0f0 | grep firmware-version firmware-version: 0x800004d0
Как прошить на эти карты новейшую прошивку? Возможно ли это без перезагрузки?
Обновление микропрограммы оборудования
Чтобы получить обновленную микропрограмму, получите файлы обновления BIOS / микропрограммы для вашего сервера у поставщика.Любой другой метод может привести к нарушению вашей гарантии / контракта на поддержку.
Соответствующее обновление ядра
Чтобы убедиться, что у вас установлены новейшие модули ядра для вашего оборудования, обновите вашу ОС до последней версии ядра, поддерживаемой вашим поставщиком ОС.
Без перезагрузки?
Не совсем. Обновление оборудования наверняка потребует перезагрузки, чтобы новая прошивка вступила в силу.
Если у вас есть поддерживаемое ядро хот-патча, вы, вероятно, можете обновить ядро без перезагрузки, а затем выгрузить / перезагрузить модули ядра для ваших сетевых адаптеров при условии, что вы подключаются через консоль к другим нашим внеполосным методам, таким как idrac / ilo. Вы даже можете собрать новый модуль ядра и выполнить его insmod после выгрузки старого. Нет никакой гарантии, что сервер не будет иметь проблем с сетью при использовании этого метода.
Как закончились ваши поиски?
Этот инструмент может создавать образы ROM загрузочного агента Intel. IBABuild обычно используется для создания файлов образа ПЗУ, которые можно интегрировать в BIOS или запрограммировать во флэш-памяти адаптера. IBABuild — это исполняемый файл DOS, который может работать под Microsoft Windows. Тем не мение, функция программирования flash не работает под Windows. Система должна быть загруженным в командной строке MS-DOS для программирования флэш-памяти. Все остальные операции поддерживаются в Windows.
Прошивка сетевого контроллера 82599 основана на ПЗУ и, как правило, не подлежит обновлению. Возможны небольшие настройки, но они широко не используются и обычно предоставляются для ОЧЕНЬ специфических потребностей (например, интеграции платформы). Эти контроллеры обычно просто работают, и нет веских причин для обновления микропрограмм на них, если только вы не получили указание от службы технической поддержки сделать это.
Еще одна история — обновление дополнительного ПЗУ, которое иногда ошибочно называют микропрограммным обеспечением (это не микропрограмма, выполняемая в хост-системе, а не на самом ASIC). В этом случае, как правило, следует подумать об обновлении до последней версии, особенно если вы наблюдаете некоторые аномалии при загрузке из сети.