Fri 27 Jun 2014 03:54:37 AM UTC, original submission:
I'm sending grub64.efi to two different apple iMacs (iMac11,2 and iMac14,1) via DHCP/BOOTP/TFTP configured to speak Apple's Netboot.
grub64.efi is built with "grub-mkimage -O x86_64-efi" and includes a whole slew of modules including efi_gop, efi_uga, efinet, net, and tftp.
At power-up the iMac is sent to Apple's boot menu by holding the "Option" key. Monitoring of the DHCP/BOOTP server shows that the machine requests and is given DHCP configuration, as well as Netboot options.
In Apple's boot menu, the GRUB option is selected. Monitoring of the TFTP server shows that the grub64.efi file is transferred as expected.
GRUB runs on the iMac and presents the shell from normal mode.
So far, so good.
At the grub> prompt run net_bootp, and "error: couldn't send network packet." is displayed. net_ls_addr now shows both network cards (wired and wireless) with dhcp_tmp and temporary. (DHCP server is configured with 5 minute leases.) I know the iMac still has the lease, as the DHCP server shows the REQUEST/ACK of renews, and net_ls_addr still shows temporary.
Then, at some magically determined point, many minutes later, net_ls_addr shows that the network has been configured. I've watched the DHCP REQUEST/ACK renewals and they are not responsible for the network configuration.
I've traced the error message to grub-core/net/drivers/efi/efinet.c:send_card_buffer. The error is caught at the end of the function. I inserted some debugging printfs to see that the error code is 7 (GRUB_EFI_DEVICE_ERROR).
I'd be very happy to work with someone to debug and fix this issue.
Thanks for the great software.
|