[syslinux] One DHCP/PXE config for BIOS, EFI32, and EFI64 clients?

Ady ady-sf at hotmail.com
Fri Sep 20 04:43:47 PDT 2013


> 
> On 09/20/2013 02:34 AM, Ady wrote:
> >> There might be an alternative (and possibly others too): let the user 
> >> select the appropriate firmware from within pxelinux.cfg/default.
> >>
> >> So, keep using the same method you used in previous versions, instead 
> >> of selecting the Syslinux cfg / firmware from the DHCP snippet that 
> >> Daniel posted.
> >>
> >> If you actually get to pxelinux.cfg/default (as you probably used to 
> >> when you were not selecting a specific machine), _then_ you choose 
> >> the firmware.
> >>
> >  
> > While re-reading my own email, I realized that I wasn't clear enough. 
> > >From the DHCP, you would still need to "select" the specific 
> > bootloader according to the firmware. What I meant was, not to select 
> > a firmware-specific cfg file ( pxelinux.cfg/bios ; pxelinux.cfg/efi32 
> > ; pxelinux.cfg/efi64 ) from the DHCP, but to leave it as "usual" 
> > (defaulting to pxelinux.cfg/default), as you probably used to.
> >
> > So, when I said "_then_ you choose the firmware", what I actually 
> > meant is "_then_ you select the respective cfg file". The 
> > /pxelinux.cfg/default and the rest of the cfg files I suggested are 
> > still relevant.
> >
> > I hope I expressed myself more clearly this time.
> >
> > Regards,
> > Ady.
> Ady,
> Thanks. Did you mean to choose the firmware in the client? If so, my
> plan is to automatically boot the client machines. This is a must since
> our goal is for massive deployment. Therefore everything must be
> unattended in the client side.
> Or maybe I missed something?
> 
> Regards,
> Steven.
 
My focus was on:
 option pxelinux.configfile "pxelinux.cfg/bios"; 

and the respective lines for efi32 and efi64, so to try to give you 
the usual behavior such as:
pxelinux.cfg/01-88-99-aa-bb-cc-dd
pxelinux.cfg/C000025B
pxelinux.cfg/C000025
pxelinux.cfg/C00002
pxelinux.cfg/C0000
pxelinux.cfg/C000
pxelinux.cfg/C00
pxelinux.cfg/C0
pxelinux.cfg/C

Although you didn't explicitly mention the "unattended client for 
massive deployment" condition before, I should probably had assumed 
it.

Creating a new c32 module (similar to whichsys.c32 or to ifcpu64.c32, 
but without the lib*.c32 dependencies) that could select a label 
according to the (client's) firmware (i.e. bios, efi32, efi64), could 
be helpful. But such c32 module doesn't exist (yet?).

So currently my suggestion is not useful for you. Perhaps someone 
else might know about some alternative solution, or someone might 
remember (from the ML?) some other method that would match your case.

Regards,
Ady.


More information about the Syslinux mailing list