Eu apenas tentei inicializar minha máquina no modo UEFI, mas recebi esta mensagem:
o sistema não pode encontrar o driver UEFI para os dispositivos de rede complementares [0x10D38086]
Estou executando o Debian Linux, mas não tenho certeza se isso é relevante. Não tenho certeza se meu sistema chegou à parte do Linux.
Aqui está a saída relevante lspci
para a minha placa de rede
0a: 00.0 Controlador Ethernet: Conexão de rede Gigabit Intel Corporation 82574L
A própria placa-mãe suporta UEFI, eu acho. Aqui está a saída da dmidecode
placa-mãe.
dmidecode --type 2
# dmidecode 2.12
SMBIOS 2.7 present.
Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
Manufacturer: ASUSTeK COMPUTER INC.
Product Name: SABERTOOTH 990FX R2.0
Version: Rev 1.xx
Serial Number: 130309723501985
Asset Tag: To be filled by O.E.M.
Features:
Board is a hosting board
Board is replaceable
Location In Chassis: To be filled by O.E.M.
Chassis Handle: 0x0003
Type: Motherboard
Contained Object Handles: 0
boot
uefi
network-adapter
Faheem Mitha
fonte
fonte
Respostas:
O problema aqui é que o firmware do seu adaptador de rede, ou a ROM opcional , não suporta UEFI.
Uma placa de expansão pode ter seu próprio código executável para uso no ambiente de pré-inicialização. O VBIOS em uma placa de vídeo, usado para inicializar a GPU e exibir no momento da inicialização, é um exemplo dessa ROM opcional. Em uma placa de rede, isso geralmente é usado para implementar o PXE . O UEFI normalmente 1 exige que o firmware da placa contenha um driver feito especialmente, mas sua NIC foi feita para sistemas BIOS herdados, portanto, não contém nenhum driver. Como tal, ele não funcionará em um sistema UEFI que não use o Módulo de Suporte de Compatibilidade (a camada de compatibilidade do BIOS herdada) e precisa ser atualizado.
Indo mais fundo, descobri que o código fornecido na mensagem de erro
0x10D38086
é o ID PCI da placa de rede. 8086: 10D3 é o adaptador de desktop Intel Gigabit CT .Uma pesquisa dos downloads disponíveis para esta placa resultou em uma atualização de firmware que pode ser instalada na NIC para atualizar a opção ROM para suportar a UEFI. Baixe e extraia
Preboot.tar.gz
e siga as instruções para atualizar o firmware. Pelas notas de versão , a opção ROM inclui drivers UEFI, que devem corrigir o erro que você está recebendo.No seu caso, atualize o
combo
firmware, que oferece suporte a UEFI e PXE:A mensagem que o utilitário retorna simplesmente indica qual funcionalidade o firmware existente fornece. Será substituído durante o processo de flash; isto é normal.
Depois de atualizar o firmware, reinicie o sistema no modo UEFI nativo e verifique se ele funciona. Caso contrário, será necessário substituir o adaptador de rede.
Atualização: você indicou no bate - papo que está recebendo esse erro ao tentar atualizar o firmware:
Parece que o programa flash do firmware requer que o driver de depuração do iQV (
iqvlinux
) funcione. O driver pode ser baixado aqui , mas você precisará compilar e carregar o driver. Oinstall
script, que é um download separado, é necessário para executar a instalação; não apenas extraia o pacote do driver e executemake
.1 Os drivers EFI também podem estar na partição do sistema EFI ou no firmware UEFI na própria placa-mãe. No entanto, para placas PCI e PCIe, geralmente é fornecido no firmware da placa.
fonte
bootutil64e -up=efi64 -all -FILE=/usr/local/src/Intel_Network_Card_Boot_Utility/APPS/BootUtil/BootIMG.FLB
. A mensagem diz: "A atualização do EFI remove a funcionalidade PXE. Deseja continuar?" Não sei exatamente o que isso significa.-up=combo
. Caso contrário, sua placa aparentemente suporta apenas uma dessas funções por vez, não as duas, e você precisará perder o recurso de inicialização PXE para fazer com que a placa inicialize em um ambiente UEFI.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) eAPPS/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 conseguiIsso 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 corraou 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 doinstall
script.Isso fornece a saída
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: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:fonte