[syslinux] Using of pxelinux configfiles for both BIOS and UEFI boot

Ady ady-sf at hotmail.com
Mon Dec 15 08:33:05 PST 2014


> 
> >>According to prior pcap reports, syslinux.efi searches for syslinux.cfg (too), while (l)pxelinux.0 will be searching for "default". >This means that using something *similar* to:
> >> pxelinux.cfg/default:
> >>  PATH bios
> >>  CONFIG common-config.cfg ::bios
> >>  # the bios modules should be located in the bios subdir
> >>
> >>and
> >> pxelinux.cfg/syslinux.cfg
> >>  PATH efi64
> >>  CONFIG common-config.cfg ::efi64
> >>  # the efi64 modules should be located in the efi64 subdir
> >>
> >>could / perhaps / might / work. It would also depend on how the path notation is expressed in "common-config.cfg", considering that >the CONFIG directive is changing the working directory.
> >>
> >>This might very well fail too, but perhaps this idea triggers some additional feedback from someone else.
> >>
> >>Regards,
> >>Ady.
> >
> >Hello Ady,
> >
> >thank you for your response. I will check out this (hopefully) on Monday and give a short feedback to the list.
> >
> >I didn't notice this difference in the search order - but it can be. As far as I can see in my wireshark snapshots on the efi boot where is no search for a syslinux.cfg, but maybe on the bios boot, but I haven't one snapshot of this within reach.
> >
> >Peter
> 
> Hello Ady,
> 
> I checked this now by sniffing with wireshark but there is no search for pxelinux.cfg/syslinux.cfg in either bios or efi mode before searching for pxelinux.cfg/default. (using a renamed syslinux.efi in efi64 mode)
> 
> If I remove/rename the bootloader ldlinux.e64 the seachorder for efi is:
> 	Ldlinux.e64
> 	/ldlinux.e64
> 	/boot/isolinux/ldlinux.e64
> 	/isolinux/ldlinux.e64
> 	/boot/syslinux/ldlinux.e64
> 	/syslinux/ldlinux.e64
> 	/ldlinux.e64
> 
> If I remove/rename the configfile pxelinux.cfg/default the searchorder for efi is:
> 
> 	pxelinux.cfg/uuid (or something similar)
> 	pxelinux.cfg/macaddress
> 	...
> 	pxelinux.cfg/(parts of macaddress)
> 	...
> 	pxelinux.cfg/default
> 
> and then the  boot fails with a "configuration file not found" error.
> 
> Peter
> 
> 

Have you actually tried with the pxelinux-options tool (probably 
executed under some GNU/Linux (Live) OS rather than under Windows) as 
suggested by Gene?

One potential (future) possibility could be to use something similar to 
a proposal made back in August 2014. The last email about it was sent 
in October:
 http://www.syslinux.org/archives/2014-October/022712.html 

To be clear, I don't know how the actual patch should look like 
(considering that I don't know the origin of "__FIRMWARE_EFI32__" and 
"__FIRMWARE_EFI64__").

The original proposal was meant for syslinux.efi booting storage 
devices (such as USB drives), and there has been no actual development 
about it.

For storage devices, currently there is no alternative way to solve the 
problem, whereas for network booting the dhcp options and/or the 
pxelinux-options tool should help (when available). But, I can see a 
case (such as the one we are discussing in this email thread) where the 
simple presence of specific filenames could be useful.

If this concept would be evaluated for some form of implementation, 
then the potential reduction of efficiency in other network setups 
should also be considered.

At this point, I can only hope that some Syslinux developer might want 
to consider the aforementioned proposal (for storage devices) and 
perhaps also some alternative solution for this type of network setup.

Regards,
Ady.


More information about the Syslinux mailing list