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

Gene Cumm gene.cumm at gmail.com
Mon Dec 8 03:18:41 PST 2014


On Dec 8, 2014 5:24 AM, "Leenders, Peter" <Peter.Leenders at computacenter.com>
wrote:
>
> > Hello everyone,
> >
> > I'm using a windows PXE server and I try to upgrade a existing PXELINUX
menu structure with actually with BIOS/Legacy mode to work in UEFI mode too.
> >
> > Since I have to use ZENworks tftp on the windows server I have only one
TFTP-root directory not 2 different tftp-root directories like on a
standard windows
> > deployment server. ZENworks itself uses for Legacy mode a patched
PXELINUX and for UEFI a patched grub boot manager to get both running.
> >
> > - Is there a standard approach to use different vesamenu.c32 (and other
architecture depending ) files in the pxelinux.cfg/default file depending
on the boot architecture - especially for BIOS/Legacy and EFI64?

I'd say there's no standard but there are choices.  Check out this page I
wrote up.

http://www.syslinux.org/wiki/index.php/PXELINUX-Multi-Arch

> > - Is it e.g. possible to set and use variables depending on the boot
architecture in the default menu  pxelinux.cfg/default to address different
vesamenu.c32 files?

Not quite.  INCLUDE and PATH with a different initial config per
architecture (which I apparently didn't finish).  Ensure each architecture
gets a different initial config file that's two lines:

  PATH bios
  INCLUDE common-config

  PATH efi32
  INCLUDE common-config

  PATH efi64
  INCLUDE common-config

> > I sniffed network traffic, googled and looked at the SYSLINUX wiki, but
always get stuck with the problem that I can't address two different
vesamenu.c32 (or menu.c32) modules depending on BIOS or UEFI boot.
> > Maybe I'm just missing just a little detail.

> > I'm using SYSLINUX 6.03 for the existing PXE menu structure with a
large number of PXELINUX configuration files (>170), so building a second
structure in grub syntax isn't a way I would like to follow up further.
> >
> > Using the tftp from the windows deployment could be an option, but
would provoke other incompatibility of services of the MDT server and the
ZENworks infrastructure services.
> >
> > Yours sincerely
> > Peter Leenders
>
> Hello,
>
> I guess a general use of  constants/variables is still not possible as
described in the SYSLINUX wiki - is this correct?
>      ->
http://www.syslinux.org/wiki/index.php/SYSLINUX#Is_There_A_Way_To_Define_Constants_Or_Variables.3F

At that level, correct.

> Are the "system" flags to handle this or is there a version of
vesamenu.c32 (and depending modules) that run with both UEFI and BIOS- I
haven't found something like this?

No,  each is architecture-specific.  Different PATH statements is the
closest.

> Is it possible to define search paths for the modules so that it is
possible to use both UEFI and BIOS in one TFTP root structure without
depending on a special dhcp.conf (linux) or in my case using 2 different
tftp root structures (windows)?

Yes, pxelinux-options to unique initial configs.  See link.

> For belonging ldlinux module the extensions (*.c32, *.e32 and *.e64)
allows to use UEFI and BIOS parallel. Unfortunately this concept is not
working for the other modules like vesamenu and depending modules. Is there
a plan to extent this concept to the other modules?

I believe that there was debate and the decision was common name extension.

--Gene


More information about the Syslinux mailing list