Leenders, Peter
2014-Dec-08 10:04 UTC
[syslinux] Using of pxelinux configfiles for both BIOS and UEFI boot
> 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? > - 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? > > 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 LeendersHello, 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 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? 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)? 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? Peter Leenders
Ady
2014-Dec-08 11:05 UTC
[syslinux] Using of pxelinux configfiles for both BIOS and UEFI boot
> > 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? > > - 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? > > > > 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 > > 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? > > 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)? > > 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? > > Peter Leenders > > > > > > _______________________________________________ > Syslinux mailing list > Submissions to Syslinux at zytor.com > Unsubscribe or set options at: > http://www.zytor.com/mailman/listinfo/syslinux >See the PATH directive: http://www.syslinux.org/wiki/index.php/Config#PATH and the links from that section. For some general information: http://www.syslinux.org/wiki/index.php/Library_modules For a basic starting point for dhcp config for mixed BIOS/UEFI clients: http://www.syslinux.org/wiki/index.php/PXELINUX#UEFI For multiple architectures / firmware variants, see basic clues: http://www.syslinux.org/wiki/index.php/PXELINUX-Multi-Arch Note the usage of "::" as tftp root. You should be aware that mixing versions of Syslinux should be avoided, and that part of the directives are not supported in older versions. Regards, Ady.
Gene Cumm
2014-Dec-08 11:18 UTC
[syslinux] Using of pxelinux configfiles for both BIOS and UEFI boot
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 PXELINUXmenu 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 oneTFTP-root directory not 2 different tftp-root directories like on a standard windows> > deployment server. ZENworks itself uses for Legacy mode a patchedPXELINUX and for UEFI a patched grub boot manager to get both running.> > > > - Is there a standard approach to use different vesamenu.c32 (and otherarchitecture 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 bootarchitecture 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, butalways 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 alarge 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, butwould 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 asdescribed 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 ofvesamenu.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 ispossible 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
Leenders, Peter
2014-Dec-08 13:07 UTC
[syslinux] Using of pxelinux configfiles for both BIOS and UEFI boot
>> 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? >> - 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? >> >> 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 > > 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? > > 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)? > > 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? > > Peter LeendersHello, here a short feedback: As a proof of concept I patched in the compiled ldlinux.e64, vesamenu.c32, libutil.c32 and libcomc32 modules the extension strings c32 to e64 and renamed than the *.c32 module to *.64. Since I have no syslinux development environment here, I just patched the binaries itself. Additionally I copied the *.c32 Bios modules to the tftp server. As result I have no double filenames and BIOS and UEFI compatible versions are available on the server. Now it's possible to use UEFI and BIOS modules for vesamenu parallel on a tftp server with one TFTP root directory. I guess the same procedure will work for other com32 modules too, but I haven't tested yet. It may be worth to think about using different extensions in the main syslinux sourcecode branch to enable parallel UEFI and BIOS booting on a tftp server. Peter Leenders
Leenders, Peter
2014-Dec-08 15:05 UTC
[syslinux] Using of pxelinux configfiles for both BIOS and UEFI boot
> > > 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? > > > - 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? > > > > > > 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_Defi > > ne_Constants_Or_Variables.3F > > > > 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? > > > > 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)? > > > > 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? > > > > Peter Leenders > > > > > > > See the PATH directive: > http://www.syslinux.org/wiki/index.php/Config#PATH > and the links from that section. > > For some general information: > http://www.syslinux.org/wiki/index.php/Library_modules > > For a basic starting point for dhcp config for mixed BIOS/UEFI clients: > http://www.syslinux.org/wiki/index.php/PXELINUX#UEFI > > For multiple architectures / firmware variants, see basic clues: > http://www.syslinux.org/wiki/index.php/PXELINUX-Multi-Arch > > Note the usage of "::" as tftp root. > > You should be aware that mixing versions of Syslinux should be avoided, and that part of the directives are not supported in older versions. > > Regards, > Ady.Hello Ady, thank you for your answer. The path directive is fine if one want to use modules in different directories. Unfortunately it does not help if the modules have the same names - first match wins. The addressing relative to the working dir would help if ldlinux.* is loaded from different directories. In my case only the pxelinux.0 file is loaded from different locations and the loader is loaded from the root. There are more possible places where pxelinux.0 searches for the loader module, but they do not differ between UEFI and BIOS as far as I sniffed the traffic. So here also first match wins. I worked though the general library modules information, but the only architecture dependency (in path or ) file name is for the loader module. The dependency of the modules is well documented in this page, but don't help to use UEFI and Bios parallel as you have to use different files with same names depending on the arctitecture/Firmware. I read also the dhcp config part, but on my configuration with 1 TFTP root directory and a windows server this is not applicable. Of course it is possible to use 2 different TFTP root directories on a windows server and put one menu structure into a subdirectory of the 2 different tftp roots using mklink.exe. The part with the DHCP option 209 and 210 options is new to me. It may be worth to follow this if it is possible to use different config files for different architectures (UEFI/Bios) an you have not to change to many submenu files. If one could use variables or constants or path options in here this would help. At the moment I'm not sure if it is possible to use different config files for BIOS/UEFI on a windows server with this option. Peter
Leenders, Peter
2014-Dec-08 15:44 UTC
[syslinux] Using of pxelinux configfiles for both BIOS and UEFI boot
Hello Gene, thank you for your answer> > - 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-configThis look promising, if I could separate the config files for the different boot architectures Bios and UEFI. I have 2 different boot files in 2 different locations, but after startup they both refer to the tftproot/pxlinux.cfg/default config file. The DHCP Option 209 may solve this if the ZENworks tftp server support this option with different values depending on the architecture. Unfortuanelly til now I didn?t found out if there is a support for this option.> > 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.Meanwhile I found a workaround for my problem by using different extensions depending on the architecture by patching the binaries. Since using different com32 module in multi arch environments is problematic not only in my environment ? I think loud: Can this be an approach to handle this problems in a simple an clearly laid out way. It would be simple to handle multi-arch com32 files on a simple tftp server without using not always supported dhcp options or complicated config files? It?s just a renaming of binaries and of the dependencies in the source code and 1 extension for each boot architecture. E.g. *.c32 for bios and *.e64 for UEFI. Maybe the mentioned debate can be reopened since multi boot architecture are more common today? Peter
Possibly Parallel Threads
- Using of pxelinux configfiles for both BIOS and UEFI boot
- Using of pxelinux configfiles for both BIOS and UEFI boot
- Using of pxelinux configfiles for both BIOS and UEFI boot
- Using of pxelinux configfiles for both BIOS and UEFI boot
- Using of pxelinux configfiles for both BIOS and UEFI boot