[syslinux] syslinux efi configuration file name proposal
Ady
ady-sf at hotmail.com
Fri Aug 1 10:35:27 PDT 2014
Goal: To have one USB drive capable of booting UEFI IA32 and UEFI X64
(with an optional Syslinux menu containing multiple entries).
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.
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.
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.
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.
TIA,
Ady.
More information about the Syslinux
mailing list