Спасибо @bwDraco за полезный ответ.
Я добавляю некоторые детали о том, как этот процесс выглядит на практике.
Сначала я скачал и распаковал Preboot.tar.gz
. Предупреждение - это не распаковка в собственный каталог, поэтому сначала создайте для него каталог.
Обратите внимание, что эта утилита поддерживает ряд различных операционных систем. Однако я только опишу, как это работает в Linux, поскольку я больше ничего не запускаю. Основная документация для этой утилиты - DOCS/Adapter_User_Guide.pdf
.
Версия этой утилиты для Linux состоит из двух двоичных исполняемых файлов: APPS/BootUtil/Linux_x64/bootutil64e
(64-разрядная версия ) и APPS/BootUtil/Linux32$ ls bootutil32
(32-разрядная версия ). И документация для bootutil это APPS/BootUtil/Docs/bootutil.txt
.
Затем я скопировал файл APPS/BootUtil/Linux_x64/bootutil64e
в /usr/local/bin
, хотя сначала мне нужно было сделать его исполняемым. Когда я запустил его, я получил
root@orwell:/home/faheem# bootutil64e -?
Connection to QV driver failed - please reinstall it!
Затем для этого потребовалось загрузить iqvlinux.tar.gz
, который является исходным архивом модулей ядра Linux, с https://sourceforge.net/projects/e1000/files/iqvlinux/1.2.0.3/.
Примечание: там есть rpm, но попытка конвертировать его в deb выглядит довольно безнадежно. И даже не кажется, что он содержит двоичные файлы, только исходные файлы и заголовки. Это не очевидно, но нужно также install
скрипт в том же каталоге. Тогда беги
sh install
или похож на пользователя (запуск странного скрипта с правами root никогда не является хорошей идеей), убедившись, что iqvlinux.tar.gz
находится на том же уровне, что и скрипт install
.
Это дает вывод
faheem@orwell:/usr/local/src/iqvlinux$ sh install
Extracting archive..OK!
make: Entering directory '/usr/local/src/iqvlinux/iqvlinux/src/linux/driver'
make -C /lib/modules/3.16.0-4-amd64/build SUBDIRS=/usr/local/src/iqvlinux/iqvlinux/src/linux/driver modules
make[1]: Entering directory '/usr/src/linux-headers-3.16.0-4-amd64'
make[1]: Entering directory `/usr/src/linux-headers-3.16.0-4-amd64'
CC [M] /usr/local/src/iqvlinux/iqvlinux/src/linux/driver/nalioctldrv.o
CC [M] /usr/local/src/iqvlinux/iqvlinux/src/linux/driver/linuxnaldriver.o
CC [M] /usr/local/src/iqvlinux/iqvlinux/src/linux/driver/linuxdriveros_i.o
CC [M] /usr/local/src/iqvlinux/iqvlinux/src/linux/driver/linuxdriverpci_i.o
CC [M] /usr/local/src/iqvlinux/iqvlinux/src/linux/driver/linuxdriverdevice_i.o
CC [M] /usr/local/src/iqvlinux/iqvlinux/src/linux/driver/linuxdrivermemory_i.o
LD [M] /usr/local/src/iqvlinux/iqvlinux/src/linux/driver/iqvlinux.o
Building modules, stage 2.
MODPOST 1 modules
CC /usr/local/src/iqvlinux/iqvlinux/src/linux/driver/iqvlinux.mod.o
LD [M] /usr/local/src/iqvlinux/iqvlinux/src/linux/driver/iqvlinux.ko
make[1]: Leaving directory '/usr/src/linux-headers-3.16.0-4-amd64'
make: Leaving directory '/usr/local/src/iqvlinux/iqvlinux/src/linux/driver'
Skipping removing QV driver - it does not exist...
Copying iqvlinux.ko driver file to /lib/modules directory...cp: cannot create regular file ‘/lib/modules/3.16.0-4-amd64/kernel/drivers/net/iqvlinux.ko’: Permission denied
Error: failed to copy driver (‘/usr/local/src/iqvlinux/iqvlinux/src/linux/driver/iqvlinux.ko’ -> ‘/lib/modules/3.16.0-4-amd64/kernel/drivers/net/iqvlinux.ko’)
Копирование модуля ядра на место вручную устраняет ошибку.
Перед перепрошивкой карты это вывод bootutil64e
для карты:
Port Network Address Location Series WOL Flash Firmware Version
==== =============== ======== ======= === ============================= =======
1 001B213916B9 10:00.0 Gigabit YES PXE 1.3.21
Вот расшифровка стенограммы сессии. Опция combo включает функции PXE и UEFI. Обратите внимание, что нужно указать местоположение загрузочного образа с помощью опции FILE
:
root@orwell:/home/faheem# bootutil64e -up=combo -all -FILE=/usr/local/src/Intel_Network_Card_Boot_Utility/APPS/BootUtil/BootIMG.FLB
Intel(R) Ethernet Flash Firmware Utility
BootUtil version 1.6.39.1
Copyright (C) 2003-2017 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 10D34008.FLB...
Filename 10D34008.FLB already exists.
(O)verwrite/proceed or (S)top execution?: O
O
saved
Updating PXE+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 001B213916B9 10:00.0 Gigabit YES UEFI,PXE Enabled 1.5.84