Computer weigert sich, im UEFI-Modus zu starten - gibt einen Fehler bezüglich der Intel Gigabit-Netzwerkkarte aus

9

Ich habe gerade versucht, meinen Computer im UEFI-Modus zu starten, habe aber folgende Meldung erhalten:

Das System kann den UEFI-Treiber für die zusätzlichen Netzwerkgeräte nicht finden. [0x10D38086]

Ich verwende Debian Linux, bin mir aber nicht sicher, ob dies relevant ist. Ich bin mir nicht sicher, ob mein System überhaupt zum Linux-Teil gelangt ist.

Hier ist die relevante Ausgabe lspcifür meine Netzwerkkarte

0a: 00.0 Ethernet-Controller: Intel Corporation 82574L Gigabit-Netzwerkverbindung

Das Motherboard selbst unterstützt UEFI, denke ich. Hier ist die Ausgabe dmidecodefür das Motherboard.

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
Faheem Mitha
quelle
Diese Frage ist eine Fortsetzung dieser Chat-Diskussion .
bwDraco

Antworten:

19

Das Problem hierbei ist, dass die Firmware oder das Options-ROM Ihres Netzwerkadapters UEFI nicht unterstützt.

Eine Zusatzkarte kann über einen eigenen ausführbaren Code zur Verwendung in der Preboot-Umgebung verfügen. Das VBIOS auf einer Grafikkarte, mit dem die GPU initialisiert und beim Start angezeigt wird, ist ein Beispiel für ein solches Options-ROM. Auf einer Netzwerkkarte wird dies normalerweise zum Implementieren von PXE verwendet . UEFI 1 erfordert normalerweise , dass die Firmware der Karte einen speziell erstellten Treiber enthält. Ihre Netzwerkkarte wurde jedoch für ältere BIOS-Systeme erstellt, sodass sie keinen solchen Treiber enthält. Daher funktioniert es nicht auf einem UEFI-System, das das Kompatibilitätsunterstützungsmodul (die ältere BIOS-Kompatibilitätsschicht) nicht verwendet und aktualisiert werden muss.

Bei näherer Betrachtung stellte ich fest, dass der in der Fehlermeldung angegebene Code 0x10D38086die PCI-ID der Netzwerkkarte ist. 8086: 10D3 ist der Intel Gigabit CT Desktop Adapter .

Eine Suche nach den für diese Karte verfügbaren Downloads ergab ein Firmware-Update , das auf der Netzwerkkarte installiert werden kann, um das Options-ROM so zu aktualisieren, dass es UEFI unterstützt. Laden Sie Preboot.tar.gzdie Firmware herunter, extrahieren Sie sie und befolgen Sie die Anweisungen zum Aktualisieren der Firmware. Gemäß den Release Notes , enthält die Option ROM UEFI - Treiber, die den Fehler beheben sollten Sie bekommen.

Flashen Sie in Ihrem Fall die comboFirmware, die UEFI- und PXE-Unterstützung bietet:

bootutil64e -up=combo -all -FILE=BootIMG.FLB

Die vom Dienstprogramm zurückgegebene Meldung gibt lediglich an, welche Funktionen die vorhandene Firmware bietet. Es wird während des Flash-Vorgangs überschrieben. das ist normal.

Nachdem Sie die Firmware geflasht haben, starten Sie das System im nativen UEFI-Modus neu und prüfen Sie, ob es funktioniert. Wenn nicht, müssen Sie den Netzwerkadapter ersetzen.


Update: Sie haben im Chat angegeben , dass dieser Fehler beim Flashen der Firmware auftritt:

Connection to QV driver failed - please reinstall it!

Es sieht so aus, als ob das Firmware-Flash-Programm den iQV-Debug-Treiber ( iqvlinux) benötigt, um zu funktionieren. Der Treiber kann hier heruntergeladen werden , Sie müssen den Treiber jedoch selbst kompilieren und laden. Das installSkript, bei dem es sich um einen separaten Download handelt, ist für die Installation erforderlich. Extrahieren Sie nicht einfach das Treiberpaket und führen Sie es aus make.


1 EFI-Treiber können sich auch in der EFI-Systempartition oder in der UEFI-Firmware auf dem Motherboard selbst befinden. Bei PCI- und PCIe-Karten wird dies jedoch normalerweise in der Firmware der Karte angegeben.

bwDraco
quelle
1
Dieser Link sieht zumindest geringfügig relevant aus - federicofr.wordpress.com/2011/07/01/…
Faheem Mitha
Ich gehe mit bootutil64e -up=efi64 -all -FILE=/usr/local/src/Intel_Network_Card_Boot_Utility/APPS/BootUtil/BootIMG.FLB. Die Meldung lautet: "Durch das Aktualisieren von EFI wird die PXE-Funktionalität entfernt. Möchten Sie fortfahren?" Ich weiß nicht genau, was das bedeutet.
Faheem Mitha
Die Messung, die Sie erhalten, zeigt an, dass die aktuelle Firmware PXE-Funktionalität bietet und mit einer Firmware überschrieben wird, die EFI-Funktionalität bietet. Möglicherweise können Sie beide einschließen, damit Sie PXE nicht verlieren. versuche es -up=combo. Andernfalls unterstützt Ihre Karte anscheinend nur eine dieser Funktionen gleichzeitig, nicht beide, und Sie müssen die PXE-Startfunktion verlieren, damit die Karte in einer UEFI-Umgebung gestartet werden kann.
bwDraco
Ersetzt UEFI PXE nicht trotzdem? Wie in kann UEFI Boot-Dateien aus dem Netzwerk laden, wenn es einen Netzwerktreiber hat.
Zan Lynx
1
Dank der Hilfe von bwDraco verfügt meine Netzwerkkarte jetzt über UEFI-Firmware. Hier ist der letzte Schritt, den ich unternehmen musste, damit der UEFI-Boot mit dem Debian-Installationsprogramm funktioniert. Auf meinem Asus MB (SABERTOOTH 990FX R2.0) verfügt Secure Boot über eine Betriebssystemeinstellung. Ich habe es von Windows auf "Anderes Betriebssystem" umgestellt und das Installationsprogramm startet im UEFI-Modus. Vorher ist es einfach stillschweigend gescheitert.
Faheem Mitha
2

Vielen Dank an @bwDraco für die hilfreiche Antwort.

Ich füge hier einige Details hinzu, wie dieser Prozess in der Praxis aussieht.

Zuerst habe ich heruntergeladen und entpackt Preboot.tar.gz. Warnung - Dies wird nicht in ein eigenes Verzeichnis entpackt. Erstellen Sie daher zuerst ein Verzeichnis dafür.

Beachten Sie, dass dieses Dienstprogramm eine Reihe verschiedener Betriebssysteme unterstützt. Ich werde jedoch nur beschreiben, wie es unter Linux funktioniert, da ich nichts anderes ausführe. Die Hauptdokumentation für dieses Dienstprogramm ist DOCS/Adapter_User_Guide.pdf.

Die Linux-Version dieses Dienstprogramms besteht aus zwei ausführbaren Binärdateien APPS/BootUtil/Linux_x64/bootutil64e(64 Bit) und APPS/BootUtil/Linux32$ ls bootutil32(32 Bit). Und die Dokumentation für bootutil ist APPS/BootUtil/Docs/bootutil.txt.

Ich kopiert dann die Datei APPS/BootUtil/Linux_x64/bootutil64ean /usr/local/bin, obwohl ich es zuerst ausführbar machen musste. Als ich es lief, bekam ich

root@orwell:/home/faheem# bootutil64e -?
Connection to QV driver failed - please reinstall it!

Dies erforderte dann das Herunterladen iqvlinux.tar.gzeines Quellarchivs für Linux-Kernelmodule von https://sourceforge.net/projects/e1000/files/iqvlinux/1.2.0.3/ .

Hinweis: Es gibt dort eine Drehzahl, aber der Versuch, sie in eine Deb umzuwandeln, sieht ziemlich hoffnungslos aus. Und es scheint nicht einmal eine Binärdatei zu enthalten, sondern nur Quelldateien und Header. Dies ist nicht offensichtlich, aber man braucht auch das installSkript in demselben Verzeichnis. Dann renne

sh install

oder ähnlich wie ein Benutzer (das Ausführen eines seltsamen Skripts als Root ist niemals eine gute Idee), um sicherzustellen, dass iqvlinux.tar.gzes sich auf derselben Ebene wie das installSkript befindet.

Dies gibt die Ausgabe

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’)

Durch manuelles Kopieren des Kernelmoduls wird der Fehler behoben.

Vor dem erneuten Flashen der Karte ist dies die Ausgabe bootutil64efür die Karte:

Port Network Address Location Series  WOL Flash Firmware                Version
==== =============== ======== ======= === ============================= =======
  1   001B213916B9    10:00.0 Gigabit YES PXE                           1.3.21

Hier ist das Sitzungsprotokoll des erneuten Blinkens. Die Kombinationsoption aktiviert sowohl die PXE- als auch die UEFI-Funktionalität. Beachten Sie, dass man mit der FILEOption auf den Speicherort des Boot-Images zeigen muss :

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
Faheem Mitha
quelle
Wie ist das eine Antwort auf Ihre Frage? Es scheint auch keine Information zu sein, die in der Frage bearbeitet werden sollte. Wenn Sie dies nicht klären, wird diese Nichtantwort gelöscht.
DavidPostill
@DavidPostill Es ist eine Abschrift dessen, was man tun muss, um das gewünschte Ergebnis zu erzielen. Und ich habe es noch nicht fertig geschrieben.
Faheem Mitha