Geert Stappers
2015-Oct-03 07:28 UTC
[syslinux] UEFI: Failed to load ldlinux.e64/ldlinux.e32
On Sat, Oct 03, 2015 at 09:20:10AM +0300, Ady via Syslinux wrote:> > > I have a patch that I think may help your situation of syslinux.efi > > being unable to load ldlinux.e64/ldlinux.e32 (though I don't know if > > any of you are using an EFI ia32 platform). > > > > The basics are that we try to enable UseDefaultAddress as it helps > > certain clients with routing and works on numerous other clients. If > > we timeout on receiving a packet and have never received any packets, > > disable UseDefaultAddress and set the addresses manually. > > > > > > git://github.com/geneC/syslinux.git > > https://github.com/geneC/syslinux.git > > > > Branch 1efipxe > > > > _ Silly question: is it clear to everyone / anyone how exactly would > that manual configuration would be achieved?Partial diff between the 1efipxe branch and master /* Re-use the existing local port number */ udata.StationPort = socket->net.efi.localport; - udata.UseDefaultAddress = TRUE; + if (efi_net_def_addr) { + udata.UseDefaultAddress = TRUE; + } else { + udata.UseDefaultAddress = FALSE; + memcpy(&udata.StationAddress, &IPInfo.myip, sizeof(IPInfo.myip)); + memcpy(&udata.StationAddress, &IPInfo.netmask, sizeof(IPInfo.netmask)); + } memcpy(&udata.RemoteAddress, &ip, sizeof(ip)); udata.RemotePort = port; udata.TimeToLive = 64; So don't worry about "manual" :-)> _ Updating the firmware is probably still very much recommended.Waiting on an updated version of the firmware is however not an option. O, these are the moments where I realize again how lucky we are with a bootloader that is libre software.> _ Considering that HP's employees (correctly, IMHO) assume that the > Syslinux family of bootloaders _should_ work correctly on their > hardware, I wish HP, Dell, and other manufacturers would also > "collaborate" with relevant projects, for example by testing their > firmware with Syslinux, with relevant effective consequences. I wish, I > hope.Yes, collaboration is the way to succes. Groeten Geert Stappers -- Leven en laten leven ------------- volgend deel ------------ Een niet-tekst bijlage is gescrubt... Naam: signature.asc Type: application/pgp-signature Grootte: 836 bytes Omschrijving: Digital signature URL : <http://www.zytor.com/pipermail/syslinux/attachments/20151003/162865fb/attachment.sig>
On Sat, Oct 3, 2015 at 3:28 AM, Geert Stappers via Syslinux <syslinux at zytor.com> wrote:> On Sat, Oct 03, 2015 at 09:20:10AM +0300, Ady via Syslinux wrote: >> >> > I have a patch that I think may help your situation of syslinux.efi >> > being unable to load ldlinux.e64/ldlinux.e32 (though I don't know if >> > any of you are using an EFI ia32 platform). >> > >> > The basics are that we try to enable UseDefaultAddress as it helps >> > certain clients with routing and works on numerous other clients. If >> > we timeout on receiving a packet and have never received any packets, >> > disable UseDefaultAddress and set the addresses manually. >> > >> > >> > git://github.com/geneC/syslinux.git >> > https://github.com/geneC/syslinux.git >> > >> > Branch 1efipxe >> > >> >> _ Silly question: is it clear to everyone / anyone how exactly would >> that manual configuration would be achieved? > > Partial diff between the 1efipxe branch and master > > /* Re-use the existing local port number */ > udata.StationPort = socket->net.efi.localport; > > - udata.UseDefaultAddress = TRUE; > + if (efi_net_def_addr) { > + udata.UseDefaultAddress = TRUE; > + } else { > + udata.UseDefaultAddress = FALSE; > + memcpy(&udata.StationAddress, &IPInfo.myip, sizeof(IPInfo.myip)); > + memcpy(&udata.StationAddress, &IPInfo.netmask, sizeof(IPInfo.netmask)); > + } > memcpy(&udata.RemoteAddress, &ip, sizeof(ip)); > udata.RemotePort = port; > udata.TimeToLive = 64; > > So don't worry about "manual" :-)Jeff Sloan and at least one other person were pushing for the manual approach but at the expense of avoiding UseDefaultAddress. This takes a balanced approach for UDP.>> _ Updating the firmware is probably still very much recommended. > > Waiting on an updated version of the firmware is however not an option.To a phantom version that doesn't exist.> O, these are the moments where I realize again how lucky we are > with a bootloader that is libre software. > > >> _ Considering that HP's employees (correctly, IMHO) assume that the >> Syslinux family of bootloaders _should_ work correctly on their >> hardware, I wish HP, Dell, and other manufacturers would also >> "collaborate" with relevant projects, for example by testing their >> firmware with Syslinux, with relevant effective consequences. I wish, I >> hope. > > Yes, collaboration is the way to succes.The fix an employee of one of those suggested is to basically disable UseDefaultAddress, not to fix UseDefaultAddress in their firmware.>> _ Regression tests would be very welcome. In other words, tests (and >> feedback) on "both" types of cases (those that were previously failing >> and those that were previously working successfully) would be >> appreciated.Agreed. I've already tested these binaries myself but the more that can test for at least basic scenarios, the better we'll be. -- -Gene
Patrick Masotta
2015-Oct-03 13:08 UTC
[syslinux] UEFI: Failed to load ldlinux.e64/ldlinux.e32
>>>Jeff Sloan and at least one other person were pushing for the manual approach but at the expense of avoiding UseDefaultAddress.? This takes a balanced approach for UDP. <<< Good approach Gene. Blaming FW errors and just seat and wait for their fixeswill only produce a non robust EFI Syslinux that will only work "sometimes".>>> >> _ Updating the firmware is probably still very much recommended. > > Waiting on an updated version of the firmware is however not an option.To a phantom version that doesn't exist.<<< Exactly !>>>> Yes, collaboration is the way to succes.The fix an employee of one of those suggested is to basically disable UseDefaultAddress, not to fix UseDefaultAddress in their firmware. <<< Good again; I think "Adaptation" always comes before "Collaboration" Best,Patrick