我正在开发应该与网络一起使用的 efi 应用程序。为了方便起见,我将EFI\Boot\bootx64.efi
文件更改为 efi shell,以便在系统启动时默认启动 efi shell。当 shell 启动时,我运行命令ifconfig -l
来查看可用的网络接口设置。
我面临以下行为。
当系统默认启动我的 shell ( EFI\Boot\bootx64.efi
) 时,我看不到任何网络接口,正在运行 command ifconfig -l
。但。如果我EFI\Boot\bootx64.efi
使用(在 HP 笔记本电脑上测试)“引导菜单/从文件引导”手动引导相同的文件 (),shell 将启动并ifconfig -l
显示网络接口eth0
。
因此,使用默认系统启动或从启动菜单手动加载相同的 efi 文件会给我不同的网络可用性结果。
我决定比较两种情况下加载的驱动程序列表。我注意到,当系统以默认模式启动时(不是通过从启动菜单手动指定设备)驱动程序Realtek UEFI UNDI Driver
不存在。当我从文件 ( ) 手动启动时EFI\Boot\bootx64.efi
,它已加载。
我认为缺少此驱动程序“Realtek UEFI UNDI Driver”是原因。为了检查这一点,我做了以下测试:
- 从网络下载的 Realtek UNDI 驱动程序 (
RtkUndiDxe.efi
) - 将其复制到 efi 引导文件夹 (
EFI\Boot\
) - 系统默认启动进入shell并通过命令手动加载Realter UNDI驱动
load 'RtkUndiDxe.efi
结果出现网络接口。
有人可以解释一下,为什么默认系统启动Realtek UEFI UNDI 驱动程序未加载?或者我如何让系统Realtek UEFI UNDI Driver
从我自己的 efi 应用程序/驱动程序中加载它自己的?