Obrigado a @bwDraco pela resposta útil.
Estou adicionando alguns detalhes aqui sobre como esse processo se parece na prática.
Primeiro, baixei e descompactei Preboot.tar.gz
. Aviso - isso não é descompactado em seu próprio diretório, então crie um diretório para ele primeiro.
Observe que este utilitário suporta vários sistemas operacionais diferentes. No entanto, descreverei apenas como ele funciona no Linux, pois não executo mais nada. A documentação principal deste utilitário é DOCS/Adapter_User_Guide.pdf
.
A versão Linux deste utilitário são dois executáveis binários APPS/BootUtil/Linux_x64/bootutil64e
(64 bits) e
APPS/BootUtil/Linux32$ ls bootutil32
(32 bits). E a documentação para o bootutil é APPS/BootUtil/Docs/bootutil.txt
.
Copiei o arquivo APPS/BootUtil/Linux_x64/bootutil64e
para /usr/local/bin
, embora eu tivesse que torná-lo executável primeiro. Quando eu corri, eu consegui
root@orwell:/home/faheem# bootutil64e -?
Connection to QV driver failed - please reinstall it!
Isso exigiu o download iqvlinux.tar.gz
, que é um arquivo de fontes do módulo do kernel Linux, em https://sourceforge.net/projects/e1000/files/iqvlinux/1.2.0.3/ .
Nota: existe um rpm lá, mas tentar convertê-lo em um deb parece bastante inútil. E nem parece conter um binário, apenas arquivos de origem e cabeçalhos. Isso não é óbvio, mas também é necessário o install
script no mesmo diretório. Então corra
sh install
ou semelhante ao usuário (executar um script estranho como root nunca é uma boa ideia), certificando-se de que iqvlinux.tar.gz
esteja no mesmo nível do install
script.
Isso fornece a saída
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’)
Copiar o módulo do kernel no lugar manualmente faz com que o erro desapareça.
Antes de atualizar novamente o cartão, esta é a saída do bootutil64e
cartão:
Port Network Address Location Series WOL Flash Firmware Version
==== =============== ======== ======= === ============================= =======
1 001B213916B9 10:00.0 Gigabit YES PXE 1.3.21
Aqui está a transcrição da sessão do reflash. A opção de combinação habilita a funcionalidade PXE e UEFI. Observe que é preciso apontar para o local da imagem de inicialização com a FILE
opção:
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