คอมพิวเตอร์ปฏิเสธที่จะบูตในโหมด UEFI - แสดงข้อผิดพลาดเกี่ยวกับการ์ดเครือข่าย Intel Gigabit


9

ฉันพยายามบูตเครื่องในโหมด UEFI แต่ได้รับข้อความนี้:

ระบบไม่พบไดรเวอร์ UEFI สำหรับอุปกรณ์เครือข่ายเสริม [0x10D38086]

ฉันใช้ Debian Linux แต่ฉันไม่แน่ใจว่าเกี่ยวข้องหรือไม่ ฉันไม่แน่ใจว่าระบบของฉันจะได้รับส่วน Linux หรือไม่

นี่คือผลลัพธ์ที่เกี่ยวข้องจากlspciสำหรับการ์ดเครือข่ายของฉัน

0a: 00.0 ตัวควบคุมอีเทอร์เน็ต: Intel Corporation 82574L การเชื่อมต่อเครือข่ายกิกะบิต

ฉันคิดว่าเมนบอร์ดตัวเองรองรับ UEFI นี่คือผลลัพธ์ของdmidecodeเมนบอร์ด

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

คำถามนี้เป็นการติดตามการสนทนาการสนทนานี้
bwDraco

คำตอบ:


19

ปัญหาที่นี่คือเฟิร์มแวร์ของอะแดปเตอร์เครือข่ายหรือROM ตัวเลือกของคุณไม่รองรับ UEFI

การ์ดแอดออนสามารถมีรหัสปฏิบัติการของตัวเองเพื่อใช้ในสภาพแวดล้อม preboot VBIOS บนการ์ดกราฟิกใช้ในการเริ่มต้น GPU และแสดงผลในเวลาบูตเป็นตัวอย่างของตัวเลือก ROM บนการ์ดเครือข่ายนี้โดยปกติจะใช้ในการดำเนินPXE โดยทั่วไป UEFI 1ต้องการให้เฟิร์มแวร์ของการ์ดนั้นมีไดรเวอร์ที่ทำขึ้นเป็นพิเศษ แต่ NIC ของคุณถูกสร้างขึ้นมาสำหรับระบบ BIOS ดั้งเดิมดังนั้นจึงไม่มีไดรเวอร์ดังกล่าว ดังนั้นมันจะไม่ทำงานบนระบบ UEFI ที่ไม่ได้ใช้โมดูลความเข้ากันได้สนับสนุน (เลเยอร์ความเข้ากันได้ของ BIOS ดั้งเดิม) และจำเป็นต้องได้รับการอัปเดต

เมื่อขุดลึกลงไปฉันพบว่ารหัสที่ระบุในข้อความแสดงข้อผิดพลาด0x10D38086เป็น PCI ID ของการ์ดเครือข่าย 8086: 10D3 เป็นIntel Gigabit CT สก์ท็อปอะแดปเตอร์

การค้นหาการดาวน์โหลดที่มีให้สำหรับการ์ดใบนี้เปิดการอัปเดตเฟิร์มแวร์ที่สามารถติดตั้งลงใน NIC เพื่ออัปเดต ROM ตัวเลือกเพื่อให้รองรับ UEFI ดาวน์โหลดและแตกไฟล์Preboot.tar.gzและทำตามคำแนะนำเพื่ออัพเดตเฟิร์มแวร์ ตามบันทึกประจำรุ่น ROM ตัวเลือกจะมีไดรเวอร์ UEFI ซึ่งควรแก้ไขข้อผิดพลาดที่คุณได้รับ

ในกรณีของคุณให้แฟลชcomboเฟิร์มแวร์ซึ่งรองรับ UEFI และ PXE:

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

ข้อความที่ยูทิลิตีส่งคืนบ่งบอกถึงฟังก์ชันการทำงานของเฟิร์มแวร์ที่มีอยู่ มันจะถูกเขียนทับในระหว่างกระบวนการแฟลช; นี่เป็นปกติ.

หลังจากที่คุณแฟลชเฟิร์มแวร์แล้วให้รีบูตระบบในโหมด UEFI ดั้งเดิมและดูว่าทำงานได้หรือไม่ ถ้าไม่คุณจะต้องเปลี่ยนอะแดปเตอร์เครือข่าย


อัปเดต:คุณได้ระบุในการแชทว่าคุณได้รับข้อผิดพลาดนี้ในขณะที่พยายามแฟลชเฟิร์มแวร์:

Connection to QV driver failed - please reinstall it!

ดูเหมือนว่าโปรแกรมแฟลชเฟิร์มแวร์ต้องใช้ไดร์เวอร์ debug iQV ( iqvlinux) เพื่อทำงาน สามารถดาวน์โหลดไดรเวอร์ได้ที่นี่แต่คุณจะต้องรวบรวมและโหลดไดรเวอร์ด้วยตัวเอง installสคริปต์ซึ่งเป็นดาวน์โหลดแยกต่างหากเป็นสิ่งที่จำเป็นในการดำเนินการติดตั้ง; makeไม่เพียงแค่แยกแพคเกจขับรถและวิ่ง


1ไดรเวอร์ EFI สามารถอยู่ในพาร์ติชันระบบ EFI หรือในเฟิร์มแวร์ UEFI บนแผงวงจรหลักเอง อย่างไรก็ตามสำหรับการ์ด PCI และ PCIe มักจะมีให้ในเฟิร์มแวร์ของการ์ด


1
ลิงค์นี้มีความเกี่ยวข้องกับขอบเขตอย่างน้อย - federicofr.wordpress.com/2011/07/01/…
Faheem Mitha

bootutil64e -up=efi64 -all -FILE=/usr/local/src/Intel_Network_Card_Boot_Utility/APPS/BootUtil/BootIMG.FLBฉันจะมี ข้อความแจ้งว่า: "การอัปเดต EFI จะลบฟังก์ชันการทำงานของ PXE คุณต้องการดำเนินการต่อหรือไม่" ฉันไม่รู้ว่ามันหมายถึงอะไรกันแน่
Faheem Mitha

การวัดที่คุณได้รับบ่งชี้ว่าเฟิร์มแวร์ปัจจุบันมีฟังก์ชั่น PXE และถูกเขียนทับด้วยเฟิร์มแวร์ที่มีฟังก์ชั่น EFI คุณสามารถรวมทั้งสองอย่างเพื่อไม่ให้สูญเสีย PXE -up=comboความพยายาม มิฉะนั้นการ์ดของคุณรองรับฟังก์ชั่นเหล่านี้เพียงหนึ่งครั้งเท่านั้นไม่ใช่ทั้งสองอย่างและคุณจะต้องสูญเสียคุณสมบัติการบูต PXE เพื่อให้การ์ดบู๊ตในสภาพแวดล้อม UEFI
bwDraco

UEFI ไม่ได้แทนที่ PXE หรือไม่ เช่นเดียวกับใน UEFI สามารถโหลดไฟล์สำหรับบู๊ตจากเครือข่ายหากมีไดรเวอร์เครือข่าย
Zan Lynx

1
การ์ดเครือข่ายของฉันตอนนี้มีเฟิร์มแวร์ UEFI ด้วยความช่วยเหลือของ bwDraco นี่คือขั้นตอนสุดท้ายที่ฉันต้องทำเพื่อให้ UEFI boot ทำงานกับ Debian installer ใน Asus MB ของฉัน (SABERTOOTH 990FX R2.0) Secure Boot มีการตั้งค่าระบบปฏิบัติการ ฉันเปลี่ยนจาก Windows เป็น "Other OS" และตัวติดตั้งบูทในโหมด UEFI ก่อนหน้านั้นมันล้มเหลวอย่างเงียบ ๆ
Faheem Mitha

2

ขอบคุณ @bwDraco สำหรับคำตอบที่เป็นประโยชน์

ฉันกำลังเพิ่มรายละเอียดที่นี่เกี่ยวกับกระบวนการที่ดูเหมือนว่าในทางปฏิบัติ

Preboot.tar.gzครั้งแรกผมดาวน์โหลดและแตก คำเตือน - สิ่งนี้จะไม่แตกในไดเรกทอรีของตัวเองดังนั้นให้สร้างไดเรกทอรีก่อน

โปรดทราบว่ายูทิลิตี้นี้รองรับระบบปฏิบัติการที่แตกต่างกันจำนวนหนึ่ง อย่างไรก็ตามฉันจะอธิบายว่ามันทำงานอย่างไรบน Linux เนื่องจากฉันไม่ได้ทำงานอย่างอื่นอีก DOCS/Adapter_User_Guide.pdfเอกสารหลักสำหรับอรรถประโยชน์นี้

ยูทิลิตี้เวอร์ชันนี้ของ Linux นั้นเป็นไฟล์สั่งการไบนารีสองไฟล์APPS/BootUtil/Linux_x64/bootutil64e(64 บิต) และ APPS/BootUtil/Linux32$ ls bootutil32(32 บิต) และเอกสารสำหรับ bootutil APPS/BootUtil/Docs/bootutil.txtคือ

จากนั้นฉันก็คัดลอกไฟล์APPS/BootUtil/Linux_x64/bootutil64eไปยัง/usr/local/binแม้ว่าฉันจะต้องทำให้มันปฏิบัติการก่อน เมื่อฉันวิ่งฉันได้

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

ดาวน์โหลดนี้จำเป็นต้องใช้แล้วiqvlinux.tar.gzซึ่งเป็นลินุกซ์เคอร์เนลโมดูลแหล่งเก็บจากhttps://sourceforge.net/projects/e1000/files/iqvlinux/1.2.0.3/

หมายเหตุ: มีรอบต่อนาทีอยู่ที่นั่น แต่พยายามที่จะแปลงเป็น deb ดูสิ้นหวังค่อนข้างสวย และดูเหมือนจะไม่ได้มีไบนารีเพียงแค่ไฟล์ต้นฉบับและส่วนหัว สิ่งนี้ไม่ชัดเจน แต่ก็ต้องการinstallสคริปต์ในไดเรกทอรีเดียวกันด้วย จากนั้นเรียกใช้

sh install

หรือคล้ายกับผู้ใช้ (การเรียกใช้สคริปต์ที่แปลกเนื่องจากรูทนั้นไม่ใช่ความคิดที่ดี) ตรวจสอบให้แน่ใจว่าiqvlinux.tar.gzอยู่ในระดับเดียวกับinstallสคริปต์

สิ่งนี้จะให้ผลลัพธ์

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

การคัดลอกโมดูลเคอร์เนลเข้าที่ด้วยมือทำให้เกิดข้อผิดพลาดหายไป

ก่อนทำการรีเฟรชการ์ดนี่เป็นผลลัพธ์ของbootutil64eการ์ด:

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

นี่คือบันทึกการใช้เซสชันของ reflashing ตัวเลือกคำสั่งผสมช่วยให้ทั้งฟังก์ชั่น PXE และ UEFI โปรดทราบว่าต้องระบุตำแหน่งของอิมเมจสำหรับบูตด้วยFILEตัวเลือก:

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

นี่เป็นคำตอบสำหรับคำถามของคุณอย่างไร ดูเหมือนจะไม่เป็นข้อมูลที่ควรแก้ไขในคำถาม หากคุณไม่คัดแยกสิ่งที่ไม่ใช่คำตอบนี้จะถูกลบ
DavidPostill

@DavidPostill มันเป็นหลักฐานของสิ่งที่เราต้องทำเพื่อให้ได้ผลลัพธ์ที่ต้องการ และฉันยังเขียนไม่เสร็จ
Faheem Mitha
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.