计算机拒绝以UEFI模式启动-给出有关英特尔千兆网卡的错误


9

我只是试图以UEFI模式启动计算机,但收到以下消息:

系统找不到附加网络设备的UEFI驱动程序[0x10D38086]

我正在运行Debian Linux,但不确定是否相关。我不确定我的系统是否已进入Linux部分。

这是lspci我的网卡的相关输出

0a:00.0以太网控制器:英特尔公司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

Answers:


19

这里的问题是您的网络适配器的固件或选件ROM不支持UEFI。

附加卡可以具有其自己的可执行代码,以在预引导环境中使用。图形卡上的VBIOS用于初始化GPU并在启动时显示,是此类ROM的示例。在网卡上,通常用于实现PXE。UEFI通常1要求卡的固件包含特制的驱动程序,但是您的NIC是为旧版BIOS系统制成的,因此它不包含任何此类驱动程序。因此,它不能在不使用兼容性支持模块(旧版BIOS兼容性层)且需要更新的UEFI系统上工作。

深入研究,我发现错误消息中提供的代码0x10D38086是网卡的PCI ID。8086:10D3是Intel千兆CT桌面适配器

一个搜索的可用此卡下载打开了一个固件更新,可以安装到网卡,使其支持UEFI更新选项ROM。下载并解压缩Preboot.tar.gz并按照说明更新固件。根据发行说明,选件ROM包含UEFI驱动程序,该驱动程序应修复您遇到的错误。

在您的情况下,请刷新combo固件,该固件提供UEFI和PXE支持:

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

实用程序返回的消息仅表示现有固件提供的功能。在刷新过程中它将被覆盖;这个是正常的。

刷新固件后,以本机UEFI模式重启系统,然后查看其是否有效。如果不是,则需要更换网络适配器。


更新:您已在聊天中表示尝试刷新固件时遇到此错误:

Connection to QV driver failed - please reinstall it!

固件固件程序似乎需要iQV调试驱动程序(iqvlinux)才能起作用。可以在这里下载驱动程序,但是您需要自己编译和加载驱动程序。该install脚本是一个单独的下载文件,是执行安装所必需的。不要仅仅提取驱动程序包并运行make


1 EFI驱动程序也可以位于EFI系统分区中或主板本身的UEFI固件中。但是,对于PCI和PCIe卡,通常在卡的固件中提供。


1
这个链接看起来至少略有关- federicofr.wordpress.com/2011/07/01/...
Faheem米撒

我一起去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
由于bwDraco的帮助,我的网卡现在具有UEFI固件。这是我要执行UEFI引导才能与Debian安装程序一起使用的最后一步。在我的Asus MB(SABERTOOTH 990FX R2.0)上,安全启动具有操作系统设置。我将其从Windows切换到“其他操作系统”,安装程序以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.gzhttps://sourceforge.net/projects/e1000/files/iqvlinux/1.2.0.3/下载,这是Linux内核模块源档案。

注意:那里有一个rpm,但是尝试将其转换为deb看起来非常无望。而且它甚至似乎都不包含二进制文件,而仅包含源文件和标头。这并不明显,但是也需要install在同一目录中使用脚本。然后跑

sh install

或与用户相似(以root用户身份运行一个奇怪的脚本绝不是一个好主意),请确保iqvlinux.tar.gzinstall脚本与该脚本处于同一级别。

这给出了输出

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

这是刷新的会话记录。combo选项同时启用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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.