Оновлення прошивки Intel X520-DA1/DA2 через BootUtil (помилка unsupported SFP+ module)
Мережеві карти Intel X520 (X520-DA1 з одним портом SFP+ та X520-DA2 з двома) — одні з найпоширеніших 10-гігабітних адаптерів у вживаних серверах і домашніх лабораторіях. Вони недорогі, підтримуються…
Оновлено:
Мережеві карти Intel X520 (X520-DA1 з одним портом SFP+ та X520-DA2 з двома) — одні з найпоширеніших 10-гігабітних адаптерів у вживаних серверах і домашніх лабораторіях. Вони недорогі, підтримуються будь-якою операційною системою і зазвичай працюють без питань. Проте інколи карта відмовляється піднімати лінк, а драйвер пише в лог:
ixgbe: failed to initialize because an unsupported SFP+ module type was detected
Існує декілька способів вирішення цієї проблеми, зокрема примусове ввімкнення підтримки модуля в драйвері. У цій статті розглянемо інший спосіб, який у багатьох випадках допомагає і який у будь-якому разі корисно зробити на старій карті: оновлення прошивки Preboot (завантажувальних агентів UEFI та PXE, що зберігаються у флеш-пам’яті адаптера) утилітою Intel BootUtil під Linux. Інструкція написана для Intel X520-DA1 і повністю підходить також для Intel X520-DA2.
Крок 1. Завантаження пакета Preboot
Intel поширює завантажувальні агенти та BootUtil одним архівом Preboot.tar.gz. Завантажте актуальну версію з центру завантажень Intel (шукайте «Intel Ethernet Connections Boot Utility, Preboot Images, and EFI Drivers») або скористайтеся копією з власного дзеркала. Далі передайте архів на сервер будь-яким зручним способом (scp, sftp тощо):
scp Preboot.tar.gz root@server:/root/
Крок 2. Розпакування архіву
Переходимо до каталогу root, створюємо окрему директорію та розпаковуємо архів:
cd /root
mkdir -p /root/preboot
tar -xzvf Preboot.tar.gz -C /root/preboot
Крок 3. Перехід до BootUtil
Переходимо до каталогу утиліти та надаємо права на виконання:
cd /root/preboot/APPS/BootUtil/Linux_x64
chmod +x bootutil64e
Крок 4. Перевірка знайдених адаптерів
Запускаємо утиліту без параметрів:
./bootutil64e
У результаті буде відображена інформація про всі знайдені мережеві адаптери Intel і встановлену на них прошивку:
Error: Connection to QV driver failed - please reinstall it!
Intel(R) Ethernet Flash Firmware Utility
BootUtil version 1.43.36.0
Port Network Address Location Series WOL Flash Firmware Version
==== =============== ================== ======= === ===================== =======
1 90E2BA343A0A 00000:033:00.0 10GbE N/A UEFI,PXE Enabled 2.4.59
2 D85ED3694B2E 00000:100:00.0 Gigabit YES FLASH Not Present
3 D85ED3694B2F 00000:100:00.1 Gigabit YES FLASH Not Present
Знайдіть у списку X520 (рядок серії 10GbE) і запам’ятайте його номер у колонці Port — саме це значення NIC використовуватиметься під час оновлення. У прикладі вище X520 має номер 1, тобто NIC=1. На X520-DA2 буде два рядки 10GbE; прошивка спільна для адаптера, тож оновіть перший порт і перевірте, чи другий також показує нову версію.
Повідомлення «Connection to QV driver failed»
Перший рядок виводу — попередження, а не помилка:
Error: Connection to QV driver failed - please reinstall it!
Це означає лише те, що утиліта не отримала прямий доступ до мережевого адаптера через спеціальний драйвер QV (iqvlinux). У більшості випадків це не критично. Якщо BootUtil успішно знаходить мережеву карту та відображає її у списку, прошивку можна оновити навіть без встановлення цього драйвера.
Крок 5. Оновлення прошивки
Образ прошивки — файл BootIMG.FLB, який лежить на рівень вище від Linux-бінарника. Доступні два варіанти.
Варіант 1. Оновлення тільки EFI
Якщо потрібно оновити лише UEFI Boot Agent і PXE (застаріле мережеве завантаження) не використовується:
./bootutil64e -NIC=1 -UP=EFI -FILE=../BootIMG.FLB
Під час виконання ви побачите приблизно такий результат:
Error: Connection to QV driver failed - please reinstall it!
Intel(R) Ethernet Flash Firmware Utility
BootUtil version 1.43.36.0
Copyright (C) 2003-2026 Intel Corporation
Programming flash on port 1 with flash firmware image
Create restore image of NIC 1 before proceeding? (Y)es or (N)o: y
Y
Saving flash firmware image on port 1 to file 10FB4003.FLB...saved
Updating EFI removes PXE functionality.
Would you like to continue? (Y)es or (N)o: y
Y
Flash update successful
Port Network Address Location Series WOL Flash Firmware Version
==== =============== ================== ======= === ===================== =======
1 90E2BA343A0A 00000:033:00.0 10GbE N/A UEFI 8.3.17
2 D85ED3694B2E 00000:100:00.0 Gigabit YES FLASH Not Present
3 D85ED3694B2F 00000:100:00.1 Gigabit YES FLASH Not Present
Зверніть увагу на попередження посередині: Updating EFI removes PXE functionality. Після цього варіанта карта завантажується лише через UEFI.
Варіант 2. Оновлення EFI + PXE
Якщо необхідно оновити одночасно UEFI та PXE Boot Agent:
./bootutil64e -NIC=1 -UP=combo -FILE=../BootIMG.FLB
Саме цей варіант рекомендується у більшості випадків: він оновлює обидва компоненти та не відключає підтримку PXE. Запитання утиліти ті самі. Відповідайте y на пропозицію створити образ для відновлення — поточний вміст флеш-пам’яті буде збережено у файл .FLB у робочому каталозі (збережіть його), — і y для підтвердження оновлення. Після завершення таблиця показуватиме нову версію для порту.
Після завершення
- Повністю перезавантажте сервер (найбезпечніше — холодне вимкнення живлення, щоб карта заново ініціалізувала свій Option ROM).
- Повторно запустіть
./bootutil64eі переконайтеся, що порт показує нову версію (у прикладі — 8.3.17). - Перевірте
dmesg | grep ixgbeта стан лінку (ip link): адаптер має визначатися без помилок, а якщо причиною оновлення було попередження про SFP+, перевірте, чи воно зникло. - Зайдіть у налаштування BIOS/UEFI: карта тепер відображається як пристрій «Intel(R) Ethernet» з можливістю мережевого завантаження UEFI та новою версією.
Якщо помилка SFP+ лишилась
Оновлення Preboot виправляє завантажувальні агенти, але не змінює перелік трансиверів, які приймає драйвер ixgbe. Якщо повідомлення про непідтримуваний модуль не зникло, лишаються два варіанти: використати модуль SFP+/DAC з Intel-сумісним кодуванням або завантажити драйвер з параметром allow_unsupported_sfp=1:
echo "options ixgbe allow_unsupported_sfp=1" > /etc/modprobe.d/ixgbe.conf
update-initramfs -u # Debian/Ubuntu; для RHEL-подібних — dracut -f
reboot
Непідтримувані модулі можуть працювати нормально, а можуть мати проблеми зі стабільністю лінку — протестуйте перед використанням у продакшені.
Часті запитання
Чи можна запускати BootUtil з live-USB?
Так. Підійде будь-яке x86-64 Linux live-середовище з правами root; це дозволяє не чіпати встановлену систему. Скопіюйте розпакований каталог preboot на носій із записом, щоб утиліта могла зберегти образ для відновлення.
Для чого потрібен образ для відновлення?
Це копія вмісту флеш-пам’яті до оновлення. Якщо новий завантажувальний агент спричинить проблеми, поверніть його командою ./bootutil64e -NIC=1 -UP=combo -FILE=10FB4003.FLB (використайте ім’я файлу, яке утиліта вивела під час вашого запуску).
Чи працює це у Windows?
Той самий архів містить BootUtil для Windows (APPS/BootUtil/Winx64/BootUtilw64e.exe) з ідентичними параметрами.
Оновлення прошивки — невеликий і зворотний крок, який повертає десятирічному адаптеру сучасну поведінку при завантаженні; робіть його свідомо, зберігайте образ для відновлення і перевіряйте результат.
Коротко: завантажте пакет Intel Preboot, розпакуйте його, запустіть bootutil64e, щоб дізнатися номер порту X520, і оновіть прошивку командою з -UP=combo (UEFI + PXE, рекомендовано) або -UP=EFI, відповівши «y» на створення образу відновлення та підтвердження. Попередження про QV-драйвер можна ігнорувати, якщо карта є у списку. Перезавантажте сервер і перевірте нову версію. Якщо помилка SFP+ лишилась — окремо розберіться з модулем або параметром драйвера.