Dzięki @bwDraco za pomocną odpowiedź.
Dodam tutaj kilka szczegółów na temat tego, jak ten proces wygląda w praktyce.
Najpierw pobrałem i rozpakowałem Preboot.tar.gz
. Ostrzeżenie - to nie rozpakowuje się do własnego katalogu, więc najpierw stwórz dla niego katalog.
Pamiętaj, że to narzędzie obsługuje wiele różnych systemów operacyjnych. Opiszę jednak tylko, jak to działa w systemie Linux, ponieważ nie uruchamiam nic innego. Główna dokumentacja tego narzędzia to DOCS/Adapter_User_Guide.pdf
.
Wersja tego narzędzia dla systemu Linux to dwa binarne pliki wykonywalne APPS/BootUtil/Linux_x64/bootutil64e
(64-bitowe) i
APPS/BootUtil/Linux32$ ls bootutil32
(32-bitowe). A dokumentacja bootutil to APPS/BootUtil/Docs/bootutil.txt
.
I potem skopiowany plik APPS/BootUtil/Linux_x64/bootutil64e
do /usr/local/bin
, choć musiałem uczynić go wykonywalnym pierwszy. Kiedy go uruchomiłem, zrozumiałem
root@orwell:/home/faheem# bootutil64e -?
Connection to QV driver failed - please reinstall it!
Wymagało to następnie pobrania iqvlinux.tar.gz
, które jest archiwum źródeł modułów jądra systemu Linux, z https://sourceforge.net/projects/e1000/files/iqvlinux/1.2.0.3/ .
Uwaga: tam jest rpm, ale próba konwersji go na deb wygląda na całkiem beznadziejną. I nie wydaje się nawet zawierać pliku binarnego, tylko pliki źródłowe i nagłówki. Nie jest to oczywiste, ale potrzebny jest również install
skrypt w tym samym katalogu. Następnie uruchomić
sh install
lub podobny do użytkownika (uruchamianie dziwnego skryptu jako root nigdy nie jest dobrym pomysłem), upewniając się, że iqvlinux.tar.gz
jest na tym samym poziomie co install
skrypt.
Daje to wynik
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’)
Ręczne skopiowanie modułu jądra na miejsce powoduje zniknięcie błędu.
Przed ponownym flashowaniem karty jest to wynik działania bootutil64e
karty:
Port Network Address Location Series WOL Flash Firmware Version
==== =============== ======== ======= === ============================= =======
1 001B213916B9 10:00.0 Gigabit YES PXE 1.3.21
Oto transkrypcja sesji reflashingu. Opcja kombi włącza funkcje PXE i UEFI. Zauważ, że należy wskazać lokalizację obrazu rozruchowego z FILE
opcją:
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