Спасибо @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