Centos 7: Intel X540 (10Gbit Ethernet) не работает. “Сеть не заявлена” – ixgbe загружен, но не инициализирован.

Вопрос или проблема

В настоящее время я использую Centos 7 на сервере KVM и недавно установил адаптер Ethernet Intel X540 10Gbit.

И прежде чем вы сделаете выводы:

  • Адаптер распознается и работает прекрасно на этой машине, когда я загружаю LIVE Centos 7.9 2009 или Ubuntu.

-> Проблем с оборудованием или BIOS нет…

Когда я загружаю установленный Centos 7, адаптер отображается в списке lspci

02:00.0 Ethernet controller: Intel(R) Ethernet Controller X540 (rev 01)

но в lshw -class network отображается как не заявленный:

 *-network UNCLAIMED       
       description: Ethernet controller
       product: Ethernet Controller X540
       vendor: Intel(R)
       physical id: 0
       bus info: pci@0000:02:00.0
       version: 01
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi msix pciexpress bus_master cap_list
       configuration: latency=0
       resources: memory:dda00000-ddbfffff memory:ddc00000-ddc03fff memory:dfd00000-dfd7ffff

Драйвер ixgbe установлен в дереве, как и на LIVE-системе:

modinfo ixgbe

filename:       /lib/modules/3.10.0-1160.119.1.el7.x86_64/kernel/drivers/net/ethernet/intel/ixgbe/ixgbe.ko.xz
version:        5.1.0-k-rh7.7
license:        GPL v2
description:    Intel(R) 10 Gigabit PCI Express Network Driver
author:         Intel Corporation, <[email protected]>
retpoline:      Y
rhelversion:    7.9
srcversion:     C8FAAC70303B2D7D0E691BE

[...]

depends:        mdio,ptp,dca
intree:         Y
vermagic:       3.10.0-1160.119.1.el7.x86_64 SMP mod_unload modversions 
signer:         CentOS Linux kernel signing key
sig_key:        68:EA:10:3F:2C:90:A8:DC:0B:B0:44:6C:06:D1:45:61:F2:9E:11:72
sig_hashalgo:   sha256
parm:           max_vfs:Maximum number of virtual functions to allocate per physical function - default is zero and maximum value is 63 (uint)
parm:           allow_unsupported_sfp:Allow unsupported and untested SFP+ modules on 82599-based adapters (uint)
parm:           debug:Debug level (0=none,...,16=all) (int)

Драйвер загружен, но, похоже, не инициализирует карту:

dmesg | grep ixgbe

[    2.475936] ixgbe: Intel(R) 10 Gigabit PCI Express Network Driver - version 5.1.0-k-rh7.7
[    2.475938] ixgbe: Copyright (c) 1999-2016 Intel Corporation.

Я скомпилировал последний драйвер intel 5.21 и загрузил его через modprobe с точно таким же результатом: dmesg показывает загрузку драйвера, но ничего другого не происходит.

Зависимости драйвера “mdio, ptp и dca” присутствуют и загружены.

############ ОБНОВЛЕНИЕ: ################

Через 15 минут после моего поста я нашел то, что двухдневное исследование в интернете не дало:

[https://www.linuxquestions.org/questions/linux-kernel-70/kernel-fails-to-assign-memory-to-pcie-device-4175487043/][1]

По какой-то неизвестной причине ядро не может выделить ресурсы PCIe для карты при запуске:

[    0.647435] pci 0000:02:00.0: BAR 7: no space for [mem size 0x00100000 64bit pref]
[    0.647437] pci 0000:02:00.0: BAR 7: failed to assign [mem size 0x00100000 64bit pref]
[    0.647439] pci 0000:02:00.0: BAR 10: no space for [mem size 0x00100000 64bit pref]
[    0.647440] pci 0000:02:00.0: BAR 10: failed to assign [mem size 0x00100000 64bit pref]
[    0.904604] pci 0000:02:00.0: Signaling PME through PCIe PME interrupt

Быстрое решение:
Снятие карты и повторное сканирование позволяют ей загрузиться без каких-либо проблем…

#echo 1 > /sys/bus/pci/devices/0000\:02\:00.0/remove
#echo 1 > /sys/bus/pci/rescan

Таким образом, вопрос остается в том, какое фактическое решение этой проблемы, так как даже с последним драйвером это происходит.

Спасибо за вашу поддержку!

Ответ или решение

Решение проблемы «Сеть не признана» на CentOS 7 с Intel X540 (10Gbit Ethernet)

Проблема с сетевым адаптером Intel X540 (10Gbit) на сервере CentOS 7, где устройство определяется, но не инициализируется ("network unclaimed"), может быть вызвана несколькими факторами. Ваша ситуация, описанная в вопросе, указывает на то, что драйвер ixgbe загружен, но не может корректно взаимодействовать с устройством из-за отсутствия ресурсов PCIe.

1. Поиск и устранение проблем с выделением ресурсов PCIe

Анализ сообщений ядра

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

pci 0000:02:00.0: BAR 7: no space for [mem size 0x00100000 64bit pref]
pci 0000:02:00.0: BAR 7: failed to assign [mem size 0x00100000 64bit pref]
...

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

  • Конфликт ресурсов: Другие устройства в системе могут занимать адресное пространство, необходимое для вашего сетевого адаптера.
  • Настройки BIOS/UEFI: Убедитесь, что в BIOS/UEFI включены настройки, позволяющие поддерживать расширенные функции PCIe.
  • Версии ядра и драйвера: Использовать последние стабильные версии драйвера и ядра может помочь решить проблемы с совместимостью.

Решение при помощи команд

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

echo 1 > /sys/bus/pci/devices/0000:02:00.0/remove
echo 1 > /sys/bus/pci/rescan

Этот подход позволяет системе заново обнаружить устройство и корректно выделить для него ресурсы. Однако это не решает основную проблему.

2. Долгосрочные решения

2.1. Изменения в конфигурации Grub

Попробуйте изменить параметры загрузки ядра в Grub. Это может помочь с конфигурацией PCIe. Откройте файл конфигурации Grub:

vi /etc/default/grub

Добавьте или измените строку GRUB_CMDLINE_LINUX следующим образом:

GRUB_CMDLINE_LINUX="... pci=realloc"

Не забудьте обновить конфигурацию Grub:

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

2.2. Обновление BIOS

Убедитесь, что прошивка BIOS/UEFI обновлена до последней версии. Это может решить проблемы на аппаратном уровне и улучшить совместимость с современными сетевыми адаптерами.

2.3. Проверка совместимости оборудования

Проверьте совместимость вашей материнской платы и сетевого адаптера. Иногда определенные слоты PCIe могут не поддерживать высокоскоростные адаптеры, такие как Intel X540, особенно на старом оборудовании.

2.4. Информация от производителя

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

3. Заключение

Хотя ваша текущая ситуация может быть временно решена с помощью команд для удаления и повторной инициализации устройства, важно предпринять дополнительные шаги для выявления и устранения основной проблемы с выделением ресурсов PCIe для адаптера Intel X540 на CentOS 7.

Следуя приведённым рекомендациям, вы сможете более надёжно настроить ваше окружение и избежать возникновения подобных проблем в будущем. Если вы продолжаете сталкиваться с проблемами, возможно, стоит рассмотреть возможность обращения в техническую поддержку Intel или сообщество CentOS для более детального анализа ситуации.

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

Капча загружается...