Difference between revisions of "PXELINUX-Multi-Arch"
(begin the page)
Revision as of 10:25, 9 October 2014
Placing multiple architectures (BIOS, EFI32 and EFI64) into 1 common TFTP root requires careful attention as the they will search for the same configuration files and COM32 modules and library modules although identically named, come in 3 distinct incompatible architectures. Outlined below are several techniques that can allow all three to boot. This applies to Syslinux 6.00 and greater (introduction of EFI32/EFI64 to Syslinux).
Common config no COM32
In this setup, you either can not use any COM32 modules or must not attempt to execute the foreign architecture COM32 modules. This eliminates any use of menu.c32/vesamenu.c32 through the UI directive (setting DEFAULT to point at a ui system like menu.c32/vesamenu.c32 is discouraged).
Place pxelinux.0/ldlinux.c32 (BIOS), syslinux.efi(efi32/efi/syslinux.efi renamed uniquely as syslnx32.efi or bootia32.efi)/ldlinux.e32(EFI32), and syslinux.efi(efi64/efi/syslinux.efi renamed uniquely as syslnx64.efi or bootx64.efi)/ldlinux.e64(EFI64) into the appropriate directory on the TFTP root.
Common directory distinct config
In this setup, COM32 modules can be fully utilized however this depends on the effective use of DHCP option 209, either by built-in options (coded into the booting binary pxelinux.0/syslinux.efi by pxelinux-options) or by feeding the PXE booting client DHCP option 209, either by encapsulating within vendor-options (DHCP option 43) or forcibly inserting it into the offer/acknowledgement, as it's not requested by default. This also presumes 1 common config regardless of UUID/MAC/IP address.
All 3 architectures should be configured to utilize a unique configuration file that includes a PATH statement to an architecture-specific directory for COM32 modules and library modules.
In this setup, each architecture boots a unique directory, has its own configs and COM32 modules and library modules. File reuse can be achieved by one of several other techniques that may depend on the particular TFTP system's capabilities (ie symlinks).
Distinct directory common kernel path
Reference kernel path outside boot directory
Ref to a kernel path that's symlinked
Ref a file that's a symlink