Właśnie próbowałem uruchomić komputer w trybie UEFI, ale dostałem ten komunikat:
system nie może znaleźć sterownika UEFI dla dodatkowych urządzeń sieciowych [0x10D38086]
Używam systemu Debian Linux, ale nie jestem pewien, czy to jest istotne. Nie jestem pewien, czy mój system w ogóle przeszedł do części Linux.
Oto odpowiednie dane wyjściowe lspci
dla mojej karty sieciowej
0a: 00.0 Kontroler Ethernet: Intel Corporation 82574L Gigabit Network Connection
Myślę, że sama płyta główna obsługuje UEFI. Oto dane wyjściowe dmidecode
dla płyty głównej.
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
źródło
źródło
Odpowiedzi:
Problem polega na tym, że oprogramowanie układowe karty sieciowej lub opcjonalna pamięć ROM nie obsługuje interfejsu UEFI.
Karta dodatkowa może mieć własny kod wykonywalny do użytku w środowisku przed uruchomieniem. VBIOS na karcie graficznej, używany do inicjalizacji GPU i wyświetlania w czasie uruchamiania, jest przykładem takiej opcji ROM. Na karcie sieciowej jest to zwykle używane do implementacji PXE . UEFI zazwyczaj 1 wymaga, aby oprogramowanie układowe karty zawierało specjalnie wykonany sterownik, ale twoja karta sieciowa została stworzona dla starszych systemów BIOS, więc nie zawiera żadnego takiego sterownika. W związku z tym nie będzie działać w systemie UEFI, który nie korzysta z modułu obsługi zgodności (starszej warstwy zgodności BIOS) i wymaga aktualizacji.
Wnikając głębiej, odkryłem, że kod podany w komunikacie o błędzie
0x10D38086
jest identyfikatorem PCI karty sieciowej. 8086: 10D3 to Intel Gigabit CT Desktop Adapter .Przeszukanie tych plików do pobrania dla tej karty zwrócił się do aktualizacji oprogramowania układowego , które mogą być zainstalowane na karcie sieciowej, aby zaktualizować Option ROM tak, że obsługuje UEFI. Pobierz i rozpakuj
Preboot.tar.gz
i postępuj zgodnie z instrukcjami, aby zaktualizować oprogramowanie układowe. Zgodnie z informacjami o wersji opcja ROM zawiera sterowniki UEFI, które powinny naprawić występujący błąd.W twoim przypadku sflashuj
combo
oprogramowanie, które zapewnia obsługę UEFI i PXE:Komunikat, który zwraca narzędzie, wskazuje po prostu, jakie funkcje zapewnia istniejące oprogramowanie układowe. Zostanie nadpisany podczas procesu flashowania; to normalne.
Po sflashowaniu oprogramowania układowego uruchom ponownie system w natywnym trybie UEFI i sprawdź, czy działa. Jeśli nie, musisz wymienić kartę sieciową.
Aktualizacja: Na czacie wskazałeś , że pojawia się ten błąd podczas próby flashowania oprogramowania układowego:
Wygląda na to, że program flash oprogramowania układowego wymaga do działania sterownika debugowania iQV (
iqvlinux
). Sterownik można pobrać tutaj , ale musisz go samodzielnie skompilować i załadować.install
Skrypt, który jest do pobrania osobno, jest konieczne do przeprowadzenia instalacji; nie tylko rozpakuj pakiet sterowników i uruchommake
.1 Sterowniki EFI mogą znajdować się także w partycji systemowej EFI lub w oprogramowaniu układowym UEFI na płycie głównej. Jednak w przypadku kart PCI i PCIe zwykle jest dostarczany z oprogramowaniem układowym karty.
źródło
bootutil64e -up=efi64 -all -FILE=/usr/local/src/Intel_Network_Card_Boot_Utility/APPS/BootUtil/BootIMG.FLB
. Komunikat brzmi: „Aktualizacja EFI usuwa funkcjonalność PXE. Czy chcesz kontynuować?” Nie wiem dokładnie, co to znaczy.-up=combo
. W przeciwnym razie twoja karta najwyraźniej obsługuje tylko jedną z tych funkcji jednocześnie, a nie obie, i musisz utracić funkcję uruchamiania PXE, aby karta mogła się uruchomić w środowisku UEFI.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) iAPPS/BootUtil/Linux32$ ls bootutil32
(32-bitowe). A dokumentacja bootutil toAPPS/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łemWymagał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ć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 coinstall
skrypt.Daje to wynik
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:Oto transkrypcja sesji reflashingu. Opcja kombi włącza funkcje PXE i UEFI. Zauważ, że należy wskazać lokalizację obrazu rozruchowego z
FILE
opcją:źródło