[syslinux] syslinux EFI?

Gene Cumm gene.cumm at gmail.com
Thu Aug 29 17:06:59 PDT 2013


On Thu, Aug 29, 2013 at 7:42 AM, mailing list <m.list at brom.in> wrote:

> Also can I boot both BIOS and EFI client from one pxelinux environment? My
> configuration is syslinux(pxelinux) + ISC dhcp.
> Thanks.

To a point (let me note that I haven't personally done this but guided
someone through the steps and they had good results).  You can't reuse
ANY COM32 modules across BIOS, EFI32 and EFI64.  Although they can all
have modules based on the same source code, they are not
binary-compatible.

The closest to maximum reuse that I can concieve without symlinks is
as follows(paths relative to TFTP root):

pxelinux.0, syslinux.efi and syslin64.efi in the root.  Using
per-architecture detection of the PXE client details that you'll
already need to use the architecture to set the BOOTP/DHCP field file,
set option 209 (forced or vendor-encapsulated) to
"pxelinux.cfg/<arch>" ("bios", "efi32", "efi64").  Each of these files
has at least 2 lines "PATH <arch>"; "INCLUDE pxelinux.cfg/base", such
that pxelinux.cfg/bios may look like:

    PATH bios
    INCLUDE pxelinux.cfg/base


IF you wanted to utilize symlinks/hardlinks, there are yet other steps
you can take.  My example will use symlinks.  <arch> would boot
<arch>/<binary> (ie BIOS would boot bios/pxelinux.0).
Architecture-specific files would reside within <arch>/ (or a
subdirectory path) while common files would have a symlink to a common
path outside the <arch>/ directory (ie <arch>/linux could be a symlink
to "../common/linux").  Of course, the path <arch>/pxelinux.cfg/ must
have appropriate files for configuration (symlink or regular).

-- 
-Gene


More information about the Syslinux mailing list