Browse Source

boot/syslinux: add option to install lpxelinux

lpxelinux is like pxelinux, except it allows retrieving the files for
the kernel (with the KERNEL directive) and initrd (the path to initrd=
in the APPEND directive) from FTP or HTTP, rather than just from TFTP.
Using HTTP or FTP is musch faster than TFTP, so the boot time for big
kernels or big initrds is much shorter than with TFTP.

Signed-off-by: Yann E. MORIN <yann.morin@orange.com>
[Julien: fix typo in commit title]
Signed-off-by: Julien Olivain <ju.o@free.fr>
Yann E. MORIN 1 month ago
parent
commit
48639f074c
2 changed files with 15 additions and 2 deletions
  1. 14 2
      boot/syslinux/Config.in
  2. 1 0
      boot/syslinux/syslinux.mk

+ 14 - 2
boot/syslinux/Config.in

@@ -4,6 +4,7 @@ menuconfig BR2_TARGET_SYSLINUX
 	# Make sure at least one of the flavors is installed
 	select BR2_TARGET_SYSLINUX_ISOLINUX \
 		if !BR2_TARGET_SYSLINUX_PXELINUX && \
+		   !BR2_TARGET_SYSLINUX_LPXELINUX && \
 		   !BR2_TARGET_SYSLINUX_MBR && \
 		   !BR2_TARGET_SYSLINUX_EFI
 	select BR2_PACKAGE_UTIL_LINUX
@@ -27,11 +28,22 @@ config BR2_TARGET_SYSLINUX_ISOLINUX
 	  optical media (CDROM, DVD.)
 
 config BR2_TARGET_SYSLINUX_PXELINUX
-	bool "install pxelinux"
+	bool "install pxelinux (TFTP-only)"
 	select BR2_TARGET_SYSLINUX_LEGACY_BIOS
 	help
 	  Install the legacy-BIOS 'pxelinux' image, to boot off
-	  the network using PXE.
+	  the network using PXE and TFTP.
+
+config BR2_TARGET_SYSLINUX_LPXELINUX
+	bool "install lpxelinux (TFTP, HTTP, FTP)"
+	select BR2_TARGET_SYSLINUX_LEGACY_BIOS
+	help
+	  Install the legacy-BIOS 'lpxelinux' image, to boot off
+	  the network using PXE, and TFTP, HTTP, or FTP.
+
+	  Note: a TFTP server is still required to serve the
+	  lpxelinux boot image; HTTP or FTP can only be used
+	  by lpxelinux to retrieve the kernel (and initrd...)
 
 config BR2_TARGET_SYSLINUX_MBR
 	bool "install mbr"

+ 1 - 0
boot/syslinux/syslinux.mk

@@ -105,6 +105,7 @@ SYSLINUX_POST_INSTALL_TARGET_HOOKS += SYSLINUX_POST_INSTALL_CLEANUP
 
 SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_ISOLINUX) += bios/core/isolinux.bin
 SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_PXELINUX) += bios/core/pxelinux.bin
+SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_LPXELINUX) += bios/core/lpxelinux.bin
 SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_MBR) += bios/mbr/mbr.bin
 SYSLINUX_IMAGES-$(BR2_TARGET_SYSLINUX_EFI) += $(SYSLINUX_EFI_BITS)/efi/syslinux.efi