Saya baru saja mencoba mem-boot mesin saya dalam mode UEFI, tetapi mendapat pesan ini:
sistem tidak dapat menemukan driver UEFI untuk perangkat jaringan tambahan [0x10D38086]
Saya menjalankan Debian Linux, tetapi saya tidak yakin apakah itu relevan. Saya tidak yakin apakah sistem saya bahkan sampai ke bagian Linux.
Ini adalah output yang relevan lspci
untuk kartu jaringan saya
0a: 00.0 Pengontrol Ethernet: Koneksi Jaringan Gigabit Intel Corporation 82574L
Motherboard itu sendiri mendukung UEFI, saya pikir. Ini adalah output dmidecode
untuk 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
boot
uefi
network-adapter
Faheem Mitha
sumber
sumber
Jawaban:
Masalahnya di sini adalah firmware adapter jaringan Anda, atau ROM opsi , tidak mendukung UEFI.
Kartu tambahan dapat memiliki kode yang dapat dieksekusi sendiri untuk digunakan di lingkungan preboot. VBIOS pada kartu grafis, yang digunakan untuk menginisialisasi GPU dan ditampilkan pada saat boot, adalah contoh dari ROM opsi tersebut. Pada kartu jaringan, ini biasanya digunakan untuk mengimplementasikan PXE . UEFI biasanya 1 mengharuskan firmware kartu berisi driver yang dibuat khusus, tetapi NIC Anda dibuat untuk sistem BIOS lama, sehingga tidak mengandung driver seperti itu. Dengan demikian, ini tidak akan berfungsi pada sistem UEFI yang tidak menggunakan Modul Dukungan Kompatibilitas (lapisan kompatibilitas BIOS lama) dan perlu diperbarui.
Menggali lebih dalam, saya menemukan bahwa kode yang disediakan dalam pesan kesalahan
0x10D38086
,, adalah PCI ID kartu jaringan. 8086: 10D3 adalah Intel Gigabit CT Desktop Adapter .Pencarian unduhan yang tersedia untuk kartu ini menghasilkan pembaruan firmware yang dapat diinstal ke NIC untuk memperbarui ROM opsi sehingga mendukung UEFI. Unduh dan ekstrak
Preboot.tar.gz
dan ikuti instruksi untuk memperbarui firmware. Per catatan rilis , ROM opsi termasuk driver UEFI, yang seharusnya memperbaiki kesalahan yang Anda dapatkan.Dalam kasus Anda, flash
combo
firmware, yang menyediakan dukungan UEFI dan PXE:Pesan yang dikembalikan utilitas hanya menunjukkan fungsionalitas apa yang disediakan firmware yang ada. Ini akan ditimpa selama proses flash; ini normal.
Setelah Anda menginstal firmware, reboot sistem dalam mode UEFI asli dan lihat apakah itu berfungsi. Jika tidak, Anda harus mengganti adaptor jaringan.
Pembaruan: Anda telah mengindikasikan pada obrolan bahwa Anda mendapatkan kesalahan ini ketika mencoba mem-flash firmware:
Sepertinya program flash firmware mengharuskan driver debug iQV (
iqvlinux
) berfungsi. Driver dapat diunduh di sini , tetapi Anda harus mengkompilasi dan memuat driver itu sendiri. Theinstall
Script, yang merupakan sebuah download yang terpisah, perlu melakukan instalasi; jangan hanya mengekstrak paket driver dan jalankanmake
.1 driver EFI juga dapat berada di Partisi Sistem EFI atau dalam firmware UEFI pada motherboard itu sendiri. Namun, untuk kartu PCI dan PCIe, biasanya disediakan pada firmware kartu.
sumber
bootutil64e -up=efi64 -all -FILE=/usr/local/src/Intel_Network_Card_Boot_Utility/APPS/BootUtil/BootIMG.FLB
. Pesan itu mengatakan: "Memperbarui EFI menghapus fungsionalitas PXE. Apakah Anda ingin melanjutkan?" Saya tidak tahu persis apa artinya ini.-up=combo
. Jika tidak, kartu Anda tampaknya hanya mendukung salah satu dari fungsi-fungsi ini pada satu waktu, bukan keduanya, dan Anda harus kehilangan fitur boot PXE untuk mendapatkan kartu untuk boot di lingkungan UEFI.Terima kasih kepada @bwDraco untuk jawaban yang bermanfaat.
Saya menambahkan beberapa detail di sini tentang seperti apa proses ini dalam praktiknya.
Pertama, saya mengunduh dan membongkar
Preboot.tar.gz
. Peringatan - ini tidak membongkar ke direktori sendiri, jadi buatlah direktori untuk itu terlebih dahulu.Perhatikan bahwa utilitas ini mendukung sejumlah sistem operasi yang berbeda. Namun, saya hanya akan menjelaskan cara kerjanya di Linux, karena saya tidak menjalankan hal lain. Dokumentasi utama untuk utilitas ini adalah
DOCS/Adapter_User_Guide.pdf
.Versi Linux dari utilitas ini adalah dua executable biner,
APPS/BootUtil/Linux_x64/bootutil64e
(64 bit), danAPPS/BootUtil/Linux32$ ls bootutil32
(32 bit). Dan dokumentasi untuk bootutil adalahAPPS/BootUtil/Docs/bootutil.txt
.Saya kemudian menyalin file
APPS/BootUtil/Linux_x64/bootutil64e
ke/usr/local/bin
, meskipun saya harus membuatnya dieksekusi terlebih dahulu. Ketika saya menjalankannya, saya mendapatkannyaIni kemudian diperlukan pengunduhan
iqvlinux.tar.gz
, yang merupakan arsip sumber modul kernel Linux, dari https://sourceforge.net/projects/e1000/files/iqvlinux/1.2.0.3/ .Catatan: ada satu rpm di sana, tetapi mencoba mengubahnya menjadi deb terlihat tidak ada harapan. Dan sepertinya tidak mengandung biner, hanya sumber file dan header. Ini tidak jelas, tetapi orang juga membutuhkan
install
skrip di direktori yang sama. Lalu lariatau mirip dengan pengguna (menjalankan skrip aneh sebagai root tidak pernah merupakan ide yang baik), memastikan bahwa ia
iqvlinux.tar.gz
berada pada level yang sama denganinstall
skrip.Ini memberikan output
Menyalin modul kernel ke tempatnya dengan tangan membuat kesalahan hilang.
Sebelum memencet kartu, ini adalah output
bootutil64e
untuk kartu:Inilah transkrip sesi reflashing. Opsi kombo memungkinkan fungsionalitas PXE dan UEFI. Perhatikan bahwa kita harus menunjuk ke lokasi gambar boot dengan
FILE
opsi:sumber