[syslinux] Hyper-V Gen 2 waiting for ldlinux.e64
Evgeny Fraimovich
evgeny at e5fraim6.com
Mon Mar 26 22:46:24 PDT 2018
Hello,
There's been a similarly-named thread several years ago, in October
2015: http://www.syslinux.org/archives/2015-October/024374.html
I've recently encountered a similar problem, namely that when loading
UEFI-based syslinux on Hyper-V Gen 2 machine the syslinux.efi will get
loaded, will do the DHCP/BOOTP communication and request ldlinux.e64
from the correct server, however it will ignore the response from the
TFTP server and will not continue the communication further.
Following the suggested debugging techniques outlined in that thread
(namely, print-based tracing) I've been able to isolate the problem to
the Hyper-V UEFI (all Gen 2 machines? Some specific NIC combination? I
don't know) not liking the UseDefaultAddress UDP option. There is
already a workaround for some such configurations in the GIT master-head
I am using, (2ea44cbedb297bd6b409d5c1e0402d5f89592be4 from 2018-03-26)
however the detection for the need for the workaround is based on the
return value EFI_NO_MAPPING received from core_udp_configure. On Hyper-V
though, the aforementioned call returns successfully, but then the
udp->Transmit call fails with the EFI_NO_MAPPING. (Which by the way
leads to silent socket closure)
When I rebuild the syslinux.efi with efi_net_def_addr forced to 0, the
boot on Hyper-V Gen 2 machines works just fine.
In the case of udp send, as opposed to sendto the configure call is
quite removed from transmit, however I can try producing a patch which
also checks from EFI_NO_MAPPING on the transmit calls and retries the
UseDefaultAddress==false configuration. Does this sound like a proper
solution?
Sincerely yours,
Evgeny
More information about the Syslinux
mailing list