在 Qemu 中设置 EFI Shell 以允许 Http 请求

在 Qemu 中设置 EFI Shell 以允许 Http 请求

我正在开发一个 UEFI 应用程序,需要通过 http 执行 GET 请求。

作为启动点,我想确保我的设置正常工作,以便 http 请求能够真正通过。

为此,我花了几天时间尝试让该http命令在 QEMU 内启动的 EFI Shell 中工作。我可以让该ping命令正常工作,但调用:

http httpbin.org/get

总是返回: 

 Unable to open http protocol on `eth0` - Unsupported
 Unable to download the file `/get` on `eth0` - Unsupported

这是我的用于配置 EFI Shell 接口的 startup.nsh 脚本:

connect
ifconfig -r eth0
ifconfig -s eth0 dhcp
ifconfig -l eth0 

这些是我正确调用 Qemu 的不同尝试:

       -netdev user,id=mynet0,hostfwd=tcp::8080-:80 -device e1000,netdev=mynet0 \
        -netdev user,id=user.0 -device e1000,netdev=user.0 \
        -nic user,ipv6=off,model=e1000,mac=52:54:98:76:54:32 \

       

和以下 本指南 我尝试设置一个水龙头,尽管没有成功,我还是使用以下配置启动了 qemu:

 -netdev tap,id=mynet0,ifname=tap0,script=no,downscript=no -device e1000,netdev=mynet0,mac=52:55:00:d1:55:01 \ 

您知道我遗漏了哪一步吗?

您认为我在哪些方面可能没有得到eth0支持?

水龙头很重要吗?

您能让这个设置在您这边正常工作吗?

答案1

@MiSimon 在堆栈溢出

该工具要求加载几乎所有的网络驱动程序。

确保您的映像包含以下驱动程序:

  • 硝苯地平
  • 明胶
  • 阿尔普德克斯
  • Ip4Dxe/Ip6Dxe
  • Dhcp4Dxe/Dhcp6Dxe
  • Udp4Dxe/Udp6Dxe
  • 域名解析
  • 传输控制协议
  • Http解析
  • HttpUtilitiesDxe

所有这些都可以在 EDK2 中找到网络包

相关内容