Grazie a @bwDraco per la risposta utile.
Sto aggiungendo alcuni dettagli qui su come appare questo processo in pratica.
Innanzitutto, ho scaricato e decompresso Preboot.tar.gz
. Avvertenza: questo non viene decompresso nella propria directory, quindi creare prima una directory per esso.
Si noti che questa utility supporta numerosi sistemi operativi diversi. Tuttavia, descriverò solo come funziona su Linux, dal momento che non eseguo nient'altro. La documentazione principale per questa utility è DOCS/Adapter_User_Guide.pdf
.
La versione Linux di questa utility sono due eseguibili binari, APPS/BootUtil/Linux_x64/bootutil64e
(64 bit) e
APPS/BootUtil/Linux32$ ls bootutil32
(32 bit). E la documentazione per bootutil è APPS/BootUtil/Docs/bootutil.txt
.
Poi ho copiato il file APPS/BootUtil/Linux_x64/bootutil64e
a /usr/local/bin
, anche se ho dovuto renderlo eseguibile prima. Quando l'ho eseguito, ho avuto
root@orwell:/home/faheem# bootutil64e -?
Connection to QV driver failed - please reinstall it!
Questo ha quindi richiesto il download iqvlinux.tar.gz
, che è un archivio di sorgenti del modulo del kernel Linux, da https://sourceforge.net/projects/e1000/files/iqvlinux/1.2.0.3/ .
Nota: c'è un rpm lì, ma provare a convertirlo in un deb sembra abbastanza senza speranza. E non sembra nemmeno contenere un file binario, solo file sorgente e intestazioni. Questo non è ovvio, ma è necessario anche lo install
script nella stessa directory. Quindi corri
sh install
o simile all'utente (eseguire uno strano script come root non è mai una buona idea), assicurandosi che iqvlinux.tar.gz
sia allo stesso livello dello install
script.
Questo dà l'output
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’)
Copiando il modulo del kernel in posizione manualmente, l'errore scompare.
Prima di eseguire il reflash della scheda, questo è l'output di bootutil64e
per la scheda:
Port Network Address Location Series WOL Flash Firmware Version
==== =============== ======== ======= === ============================= =======
1 001B213916B9 10:00.0 Gigabit YES PXE 1.3.21
Ecco la trascrizione della sessione del reflashing. L'opzione combo abilita sia la funzionalità PXE che UEFI. Si noti che si deve puntare alla posizione dell'immagine di avvio con l' FILE
opzione:
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