[syslinux] PXE Booting EFI

Patrick Masotta through Geert as being moderator stappers at stappers.nl
Mon Jan 12 02:41:55 PST 2015


 >
 >Excellent investigation and
 >details.  Thank you for this help.  Given
 >the details of your situation, I'm
 >reasonably certain it's a SYSLINUX
 >bug
 >but there is still a small chance of it being some sort
 >of negative interaction.
 >
I do not think there's a negative interaction, while the VMware EFI environment correctly retrieves
the NBP (syslinux.efi), it is the NBP the one that makes mistakes when deciding where the PXE
server is located. syslinux.efi is taking the next-server IP from an answer from a DHCP server that 
did not identified itself as a PXE server (no option 60). It looks like a bug to me.

I think I "kind" of fixed the bug; 
at syslinux-6.03/efi/pxe.c

void net_parse_dhcp(void)
{
...

//patmod start
    if(&mode->ProxyOfferReceived)
        parse_dhcp(&mode->ProxyOffer.Dhcpv4, pkt_len);
    else
//patmod end

    parse_dhcp(&mode->PxeReply.Dhcpv4, pkt_len);
    Print(L"\n");

...

}

just add the code surrounded by comments 
the idea is to ask if there was a proxyOffer first then parse the corresponding packet.
a more robust fix probably should include more checking.

I compiled the patch (using Ubuntu 14.04) and now it works !

Best,
Patrick


More information about the Syslinux mailing list