[syslinux] syslinux efi configuration file name proposal
Ady
ady-sf at hotmail.com
Sat Aug 2 09:02:44 PDT 2014
> Op 2014-08-01 om 20:35 schreef Ady:
> > Goal: To have one USB drive capable of booting UEFI IA32 and UEFI X64
> > (with an optional Syslinux menu containing multiple entries).
>
> What I would like to have is the same thing for network boot.
> So having one topdirectory on the TFTP server that can serve
> several "architectures".
I think that, for PXELINUX (or netbooting in general), there are
other methods to select the default path (directory) and then the
default configuration file, according to architecture.
>
> > Problem (solved) #1: The default directory location for both
> > syslinux.efi is the same.
> >
> > Solution #1: Rename each syslinux.efi to bootx64.efi and to
> > bootia32.efi.
>
> | stappers at nero:~/dl/syslinux-6.03-pre19
> | $ find . -name "*.efi"
> | ./efi64/efi/syslinux.efi
> | ./efi32/efi/syslinux.efi
> | ./gpxe/src/arch/x86_64/Makefile.efi
> | ./gpxe/src/arch/x86/Makefile.efi
> | ./gpxe/src/arch/i386/Makefile.efi
>
> That rename is _not_ in the 6.03 pre-release 19.
>
Correct, and adequate too. The default names for the default UEFI
boot loader is established in the UEFI specification. Syslinux shall
keep "efi{32,64}/efi/syslinux.efi". The renaming of any UEFI boot
loader is a task left for the user, and rightly so. Among other
reasons, this reduces the possibility of inadvertently overwriting
the original default boot loader.
>
> > Problem (solved) #2: Each syslinux.efi needs at least its respective
> > ldlinux module.
> >
> > Solution #2: Each ldlinux module is renamed with its corresponding
> > file name extension according to firmware/architecture. Each
> > syslinux.efi searches for its respective ldlinux.{e32,e64} module.
>
> | stappers at nero:~/dl/syslinux-6.03-pre19
> | $ find . -name "ldlinux.e*"
> | ./efi64/com32/elflink/ldlinux/ldlinux.e64
> | ./efi64/com32/elflink/ldlinux/ldlinux.elf
> | ./efi32/com32/elflink/ldlinux/ldlinux.e32
> | ./efi32/com32/elflink/ldlinux/ldlinux.elf
> | ./bios/com32/elflink/ldlinux/ldlinux.elf
>
> That rename _is_ in the 6.03 pre-release 19.
>
Yes, because this is Syslinux-specific and was implemented a long
time ago (hence, #2 is "solved").
>
> > Problem (solved) #3: Similarly to the ldlinux module, the other
> > modules also use the same file names for every firmware/architecture.
> >
> > Solution #3: Use the PATH directive and a combination of relative and
> > absolute path notation. This solution allows maintaining current
> > configurations, tutorials, easy copying, in-common cfg files... as
> > the same "c32" file name extension is kept for all alternatives.
> >
> >
> > Problem #4: The initial configuration file, "syslinux.cfg", is also
> > using the same default file name and the same default location. The
> > content of "syslinux.cfg" might not be in-common to both UEFI
> > architectures (e.g. different values for the PATH directive).
> >
> > ----
> >
> > Proposing a solution for Problem #4: syslinux.efi should look first
> > for a corresponding "sysl<arch>.cfg", and then fallback to
> > syslinux.cfg in the same searched-for location.
>
> For netboot this would be "pxel<arch>.cfg" and fallback
> to "pxelinux.cfg".
>
Selecting a different directory according to the architecture seems
to me not exactly the same as searching for a different file name
(but I could be wrong). Since "pxelinux.cfg" is the "classic"
_directory_ used for BIOS systems, and "pxelinux.cfg/default" is the
"classic" configuration file name in BIOS systems, perhaps you meant
"pxelinux.cfg/sysl<arch>.cfg" or something similar?
Do you really need a completely different _default_ root directory
for each architecture for netbooting?
Since there are other methods to select the default configuration
file for netbooting, I am leaving the netbooting matter for the
Syslinux Team.
>
> > This proposal #4 is based on what ISOLINUX already uses for its
> > configuration file name: in the first searched-for directory, it
> > first looks for "isolinux.cfg" and then for "syslinux.cfg", and then
> > moves on to the next searched-for directory to repeat the procedure.
> >
> > In the same way that syslinux.efi under X64 looks for ldlinux.e64, it
> > should also look for "syslx64.cfg" in the same location, and only if
> > "syslx64.cfg" is not found, then it should look for "syslinux.cfg" in
> > the same location.
> >
> > Similarly, syslinux.efi under IA32 looks for ldlinux.e32, so it
> > should look for "syslia32.cfg" as configuration file in the same
> > location, and only if "syslia32.cfg" is not found, then it should
> > look for "syslinux.cfg" in the same location.
> >
> > As usual, the searched name should be case-INsensitive.
> >
> > The same searched-name order is valid, independently of the name of
> > syslinux.efi. In other words, whether the name of the boot loader is
> > "syslinux.efi", or "bootx64.efi" or any other, the relevant
> > configuration file is searched ("sysl<arch>.cfg"), before falling
> > back to search for the generic term, "syslinux.cfg", in the same
> > searched-for location.
> >
> > The suggested name, "sysl<arch>.cfg", uses the same naming format as
> > the UEFI specification already uses for "boot<arch>.efi". This naming
> > format also respects the "8.3" format of FAT/ISO9660.
> >
> > At this point, this proposal is relevant for syslinux.efi (UEFI
> > systems), but not for ldlinux.sys (BIOS systems), as it seems
> > unnecessary for the latter.
> >
> >
> > @Peter,
> >
> > Please consider this proposal.
>
> And after consideration, please provide feedback.
>
>
> Groeten
> Geert Stappers
> --
> Leven en laten leven
> _______________________________________________
> Syslinux mailing list
> Submissions to Syslinux at zytor.com
> Unsubscribe or set options at:
> http://www.zytor.com/mailman/listinfo/syslinux
>
More information about the Syslinux
mailing list