On 07/09/15 11:14, Gerd Hoffmann wrote:
ipxe just got a EFI_PXE_BASE_CODE_PROTOCOL implementation. I've updated
ipxe and commented the EFI_DOWNGRADE_UX define in the qemu config. If
you want to test this you can fetch the qemu branch with the updated
roms here:
https://www.kraxel.org/cgit/qemu/log/?h=rebase/roms-next
Ran a quick test. The good news are that shim.efi can now fetch files,
it happily chainloads grub.efi. The bad news are that grub.efi has
trouble loading files. It doesn't present the boot menu but greets me
with a prompt, which usually happens if grub fails to load the config
file. So things have improved, but there still is something broken ...
Thank you for picking this up!
My local grub.efi (built from source) does nothing with
EFI_PXE_BASE_CODE_PROTOCOL except retrieve the cached DHCP packets. I
confirmed that it was doing this by typing "net_ls_addr" within the GRUB
shell, before instructing GRUB to attempt DHCP. With iPXE's
EFI_PXE_BASE_CODE_PROTOCOL enabled, grub.efi did show the correct IP
address even before attempting DHCP; without iPXE's
EFI_PXE_BASE_CODE_PROTOCOL, it did not.
I also verified that grub.efi was able to use the exposed
EFI_SIMPLE_NETWORK_PROTOCOL NIC by typing "net_bootp" within the GRUB
shell. This was able to successfully obtain a new DHCP lease.
I find GRUB2 difficult to work with since it seems not to support manual
creation of configuration files. Do you have a known-working grub.efi
configuration (DHCP options, configuration files, etc) that you could
send me so I can reproduce the problem?
Thanks,
Michael