Máy tính từ chối khởi động ở chế độ UEFI - báo lỗi về card mạng Intel Gigabit


9

Tôi vừa thử khởi động máy ở chế độ UEFI, nhưng nhận được thông báo này:

hệ thống không thể tìm thấy trình điều khiển UEFI cho các thiết bị mạng bổ trợ [0x10D38086]

Tôi đang chạy Debian Linux, nhưng tôi không chắc điều đó có liên quan hay không. Tôi không chắc hệ thống của tôi có đến phần Linux hay không.

Đây là đầu ra có liên quan từ lspcicho card mạng của tôi

Bộ điều khiển Ethernet 0a: 00.0: Intel Corporation 82574L Kết nối mạng Gigabit

Bản thân bo mạch chủ hỗ trợ UEFI. Đây là đầu ra của dmidecodebo mạch chủ.

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

Câu hỏi này là một tiếp theo từ cuộc thảo luận trò chuyện này .
bwDraco

Câu trả lời:


19

Vấn đề ở đây là phần sụn của bộ điều hợp mạng hoặc ROM tùy chọn không hỗ trợ UEFI.

Một thẻ bổ trợ có thể có mã thực thi riêng để sử dụng trong môi trường preboot. VBIOS trên card đồ họa, được sử dụng để khởi tạo GPU và hiển thị khi khởi động, là một ví dụ về ROM tùy chọn như vậy. Trên thẻ mạng, điều này thường được sử dụng để thực hiện PXE . UEFI thường 1 yêu cầu phần sụn của thẻ chứa trình điều khiển được chế tạo đặc biệt, nhưng NIC của bạn được tạo cho các hệ thống BIOS cũ, vì vậy nó không chứa bất kỳ trình điều khiển nào như vậy. Do đó, nó sẽ không hoạt động trên hệ thống UEFI không sử dụng Mô-đun hỗ trợ tương thích (lớp tương thích BIOS kế thừa) và cần được cập nhật.

Tìm hiểu sâu hơn, tôi thấy rằng mã được cung cấp trong thông báo lỗi 0x10D38086, là ID PCI của card mạng. 8086: 10D3 là Bộ điều hợp máy tính để bàn Intel Gigabit CT .

Một tìm kiếm các bản tải xuống có sẵn cho thẻ này đã bật lên một bản cập nhật phần sụn có thể được cài đặt trên NIC để cập nhật ROM tùy chọn để nó hỗ trợ UEFI. Tải về và giải nén Preboot.tar.gzvà làm theo hướng dẫn để cập nhật firmware. Theo ghi chú phát hành , ROM tùy chọn bao gồm trình điều khiển UEFI, sẽ khắc phục lỗi bạn gặp phải.

Trong trường hợp của bạn, flash combofirmware, cung cấp hỗ trợ UEFI và PXE:

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

Thông báo mà tiện ích trả về đơn giản chỉ ra chức năng mà phần sụn hiện có cung cấp. Nó sẽ được ghi đè trong quá trình flash; điều này là bình thường

Sau khi bạn flash firmware, khởi động lại hệ thống ở chế độ UEFI gốc và xem nó có hoạt động không. Nếu không, bạn sẽ cần phải thay thế bộ điều hợp mạng.


Cập nhật: Bạn đã cho biết trên trò chuyện rằng bạn đang gặp lỗi này trong khi thử flash firmware:

Connection to QV driver failed - please reinstall it!

Có vẻ như chương trình flash firmware yêu cầu trình điều khiển gỡ lỗi iQV ( iqvlinux) hoạt động. Có thể tải xuống trình điều khiển ở đây , nhưng bạn sẽ cần phải tự biên dịch và tải trình điều khiển. Các installkịch bản, mà là một download riêng, là cần thiết để thực hiện quá trình cài đặt; không chỉ giải nén gói trình điều khiển và chạy make.


1 Trình điều khiển EFI cũng có thể nằm trong Phân vùng hệ thống EFI hoặc trong phần sụn UEFI trên chính bo mạch chủ. Tuy nhiên, đối với thẻ PCI và PCIe, nó thường được cung cấp trên phần sụn của thẻ.


1
Liên kết này có vẻ ít nhất có liên quan bên lề - federicofr.wordpress.com/2011/07/01/ Khăn
Faheem Mitha

Tôi đang đi với bootutil64e -up=efi64 -all -FILE=/usr/local/src/Intel_Network_Card_Boot_Utility/APPS/BootUtil/BootIMG.FLB. Thông báo cho biết: "Cập nhật EFI sẽ loại bỏ chức năng PXE. Bạn có muốn tiếp tục không?" Tôi không biết chính xác điều này có nghĩa là gì.
Faheem Mitha

Bệnh sởi bạn nhận được cho thấy phần sụn hiện tại cung cấp chức năng PXE và đang bị ghi đè bằng phần sụn cung cấp chức năng EFI. Bạn có thể bao gồm cả hai để không mất PXE; thử -up=combo. Mặt khác, thẻ của bạn rõ ràng chỉ hỗ trợ một trong các chức năng này tại một thời điểm chứ không phải cả hai và bạn sẽ cần mất tính năng khởi động PXE để thẻ khởi động trong môi trường UEFI.
bwDraco

UEFI không thay thế PXE chứ? Như trong, UEFI có thể tải các tệp khởi động từ mạng, nếu nó có trình điều khiển mạng.
Zan Lynx

1
Thẻ mạng của tôi hiện có chương trình cơ sở UEFI nhờ sự giúp đỡ của bwDraco. Đây là bước cuối cùng tôi phải thực hiện để khởi động UEFI hoạt động với trình cài đặt Debian. Trên Asus MB của tôi (SABERTOOTH 990FX R2.0), Secure Boot có cài đặt hệ điều hành. Tôi đã chuyển nó từ Windows sang "Hệ điều hành khác" và trình cài đặt khởi động ở chế độ UEFI. Trước đó, nó chỉ âm thầm thất bại.
Faheem Mitha

2

Cảm ơn @bwDraco vì câu trả lời hữu ích.

Tôi đang thêm một số chi tiết ở đây về quá trình này trông như thế nào trong thực tế.

Đầu tiên, tôi tải về và giải nén Preboot.tar.gz. Cảnh báo - điều này không giải nén vào thư mục riêng của nó, vì vậy hãy tạo một thư mục cho nó trước.

Lưu ý rằng tiện ích này hỗ trợ một số hệ điều hành khác nhau. Tuy nhiên, tôi sẽ chỉ mô tả cách nó hoạt động trên Linux, vì tôi không chạy bất cứ thứ gì khác. Các tài liệu chính cho tiện ích này là DOCS/Adapter_User_Guide.pdf.

Phiên bản Linux của tiện ích này là hai tệp thực thi nhị phân, APPS/BootUtil/Linux_x64/bootutil64e(64 bit) và APPS/BootUtil/Linux32$ ls bootutil32(32 bit). Và tài liệu cho bootutil là APPS/BootUtil/Docs/bootutil.txt.

Sau đó tôi đã sao chép tệp APPS/BootUtil/Linux_x64/bootutil64evào /usr/local/bin, mặc dù trước tiên tôi phải làm cho nó thực thi được. Khi tôi chạy nó, tôi đã nhận

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

Điều này sau đó yêu cầu tải xuống iqvlinux.tar.gz, đó là kho lưu trữ nguồn mô-đun hạt nhân Linux, từ https://sourceforge.net/projects/e1000/files/iqvlinux/1.2.0.3/ .

Lưu ý: có một vòng / phút ở đó, nhưng cố gắng chuyển đổi nó thành một cuộc tranh luận có vẻ khá vô vọng. Và nó thậm chí dường như không chứa tệp nhị phân, chỉ là các tệp nguồn và tiêu đề. Điều này không rõ ràng, nhưng người ta cũng cần installtập lệnh trong cùng thư mục đó. Sau đó chạy

sh install

hoặc tương tự như người dùng (chạy một tập lệnh lạ dưới dạng root không bao giờ là một ý tưởng hay), đảm bảo rằng iqvlinux.tar.gznó ở cùng cấp độ với installtập lệnh.

Điều này cho đầu ra

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

Sao chép mô-đun hạt nhân vào vị trí bằng tay làm cho lỗi không còn nữa.

Trước khi làm mới thẻ, đây là đầu ra của bootutil64ethẻ:

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

Đây là bảng điểm phiên của sự phản xạ. Tùy chọn kết hợp cho phép cả chức năng PXE và UEFI. Lưu ý rằng người ta phải trỏ đến vị trí của hình ảnh khởi động với FILEtùy chọn:

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

Làm thế nào đây là một câu trả lời cho câu hỏi của bạn? Nó dường như cũng không phải là thông tin nên được chỉnh sửa thành câu hỏi. Nếu bạn không sắp xếp điều này ra thì câu trả lời không này sẽ bị xóa.
DavidPostill

@DavidPostill Đó là bảng điểm những gì người ta cần làm để có được kết quả mong muốn. Và tôi đã không viết xong nó.
Faheem Mitha
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.