- Вопрос или проблема
- Ответ или решение
- Решение проблемы «Сеть не признана» на CentOS 7 с Intel X540 (10Gbit Ethernet)
- 1. Поиск и устранение проблем с выделением ресурсов PCIe
- Анализ сообщений ядра
- Решение при помощи команд
- 2. Долгосрочные решения
- 2.1. Изменения в конфигурации Grub
- 2.2. Обновление BIOS
- 2.3. Проверка совместимости оборудования
- 2.4. Информация от производителя
- 3. Заключение
Вопрос или проблема
В настоящее время я использую 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 для более детального анализа ситуации.