You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用QEMU启动OVMF固件时UEFI Shell无法加载Udp4Dxe.efi

解决加载Udp4Dxe.efi时找不到EFI_RNG_PROTOCOL的问题

问题原因

Udp4Dxe驱动依赖EFI_RNG_PROTOCOL协议,该协议由RNG(随机数生成)驱动提供。你的目标UEFI环境中未加载对应的RNG驱动,而EDK2模拟器默认集成了该驱动,因此模拟器中可正常加载。

解决方案

  • 手动加载RNG驱动:先在UEFI Shell中加载RngDxe.efi(该驱动通常位于EDK2的CryptoPkg/RngDxe或MdeModulePkg/RngDxe目录下),执行命令:

    load RngDxe.efi
    

    确认加载成功后,再执行load Udp4Dxe.efi。

  • 调整固件驱动加载顺序:如果是自定义构建的UEFI固件,将RngDxe添加到DXE阶段的驱动列表中,让固件开机时自动加载RNG驱动,避免手动操作。

  • 验证协议状态:加载RNG驱动后,可通过UEFI Shell命令确认协议是否存在:

    • 用drivers命令查看已加载的驱动列表,确认RngDxe在列;
    • 用protocols命令搜索GUID 5B1B31A1-9562-11D2-8E3F-00A0C969723B,确认EFI_RNG_PROTOCOL已安装。

错误日志

FSOpen: Open '\net\Udp4Dxe.efi' Success FSOpen: Open '\net\Udp4Dxe.efi' Success [Security] 3rd party image[0] can be loaded after EndOfDxe: 
PciRoot(0x0)/Pci(0x1,0x1)/Ata(Primary,Master,0x0)/HD(1,MBR,0xBE1AFDFA,0x3F,0xFBFC1)/\net\Udp4Dxe.efi. 
None of Tcg2Protocol/CcMeasurementProtocol is installed. 
InstallProtocolInterface: 5B1B31A1-9562-11D2-8E3F-00A0C969723B 3E154040 
Loading driver at 0x0003E127000 EntryPoint=0x0003E12E5C5 Udp4Dxe.efi 
InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 3E154E98 
ProtectUefiImageCommon - 0x3E154040   - 0x000000003E127000 - 0x0000000000009840 
Failed to locate EFI_RNG_PROTOCOL: Not Found  
ASSERT_EFI_ERROR (Status = Not Found) 
ASSERT [Udp4Dxe] /home/uefi/edk2/NetworkPkg/Library/DxeNetLib/DxeNetLib.c(938): !(((RETURN_STATUS)(Status)) >= 0x8000000000000000ULL)

内容的提问来源于stack exchange,提问作者Tuesday

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 02:31:07