summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2015-06-09 00:21:45 +0200
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2015-06-14 23:24:45 +0200
commitf9ac784ee68057715ce2f61ad8156228b4e0ddf4 (patch)
tree8ab8158fcbcb2be24bf98223f9bf029cd60c060d /fs
parentbd256e96c07c31b3804e079dd498fe4a4012b64e (diff)
fs/iso9660: add isolinux support
After all the preparation commits, this commit finally adds the iso9660 support itself. Besides adding a new Config.in entry, a little bit of .mk code and the isolinux.cfg default configuration, not much is needed. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Diffstat (limited to 'fs')
-rw-r--r--fs/iso9660/Config.in20
-rw-r--r--fs/iso9660/iso9660.mk11
-rw-r--r--fs/iso9660/isolinux.cfg5
3 files changed, 30 insertions, 6 deletions
diff --git a/fs/iso9660/Config.in b/fs/iso9660/Config.in
index cd7b17543..97925b9af 100644
--- a/fs/iso9660/Config.in
+++ b/fs/iso9660/Config.in
@@ -2,7 +2,7 @@ config BR2_TARGET_ROOTFS_ISO9660
bool "iso image"
depends on (BR2_i386 || BR2_x86_64)
depends on BR2_LINUX_KERNEL
- depends on BR2_TARGET_GRUB
+ depends on BR2_TARGET_GRUB || BR2_TARGET_SYSLINUX_ISOLINUX
select BR2_LINUX_KERNEL_INSTALL_TARGET \
if (!BR2_TARGET_ROOTFS_ISO9660_INITRD && !BR2_TARGET_ROOTFS_INITRAMFS)
help
@@ -29,15 +29,22 @@ config BR2_TARGET_ROOTFS_ISO9660_GRUB
depends on BR2_TARGET_GRUB
select BR2_TARGET_GRUB_FS_ISO9660
+config BR2_TARGET_ROOTFS_ISO9660_ISOLINUX
+ bool "isolinux"
+ depends on BR2_TARGET_SYSLINUX_ISOLINUX
+
endchoice
config BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU
string "Boot menu.lst file"
default "fs/iso9660/menu.lst" if BR2_TARGET_ROOTFS_ISO9660_GRUB
+ default "fs/iso9660/isolinux.cfg" if BR2_TARGET_ROOTFS_ISO9660_ISOLINUX
help
- Use this option to provide a custom Grub menu.lst file. Note
- that the strings __KERNEL_PATH__ and __INITRD_PATH__ will
- automatically be replaced by the path to the kernel and
+ Use this option to provide a custom bootloader configuration
+ file (menu.lst for Grub, isolinux.cfg for isolinux).
+
+ Note that the strings __KERNEL_PATH__ and __INITRD_PATH__
+ will automatically be replaced by the path to the kernel and
initrd images respectively.
config BR2_TARGET_ROOTFS_ISO9660_INITRD
@@ -53,6 +60,7 @@ config BR2_TARGET_ROOTFS_ISO9660_INITRD
endif
-comment "iso image needs a Linux kernel and grub to be built"
+comment "iso image needs a Linux kernel and one of grub or isolinux to be built"
depends on BR2_i386 || BR2_x86_64
- depends on !BR2_LINUX_KERNEL || !BR2_TARGET_GRUB
+ depends on !BR2_LINUX_KERNEL || \
+ !(BR2_TARGET_GRUB || BR2_TARGET_SYSLINUX_ISOLINUX)
diff --git a/fs/iso9660/iso9660.mk b/fs/iso9660/iso9660.mk
index 6a1b214b0..588e07bf8 100644
--- a/fs/iso9660/iso9660.mk
+++ b/fs/iso9660/iso9660.mk
@@ -53,6 +53,17 @@ define ROOTFS_ISO9660_INSTALL_BOOTLOADER
$(INSTALL) -D -m 0644 $(GRUB_DIR)/stage2/stage2_eltorito \
$(ROOTFS_ISO9660_TARGET_DIR)/boot/grub/stage2_eltorito
endef
+else ifeq ($(BR2_TARGET_ROOTFS_ISO9660_ISOLINUX),y)
+ROOTFS_ISO9660_DEPENDENCIES += syslinux
+ROOTFS_ISO9660_BOOTLOADER_CONFIG_PATH = \
+ $(ROOTFS_ISO9660_TARGET_DIR)/isolinux/isolinux.cfg
+ROOTFS_ISO9660_BOOT_IMAGE = isolinux/isolinux.bin
+define ROOTFS_ISO9660_INSTALL_BOOTLOADER
+ $(INSTALL) -D -m 0644 $(BINARIES_DIR)/syslinux/isolinux.bin \
+ $(ROOTFS_ISO9660_TARGET_DIR)/isolinux/isolinux.bin
+ $(INSTALL) -D -m 0644 $(HOST_DIR)/usr/share/syslinux/ldlinux.c32 \
+ $(ROOTFS_ISO9660_TARGET_DIR)/isolinux/ldlinux.c32
+endef
endif
define ROOTFS_ISO9660_PREPARATION
diff --git a/fs/iso9660/isolinux.cfg b/fs/iso9660/isolinux.cfg
new file mode 100644
index 000000000..28be4fa05
--- /dev/null
+++ b/fs/iso9660/isolinux.cfg
@@ -0,0 +1,5 @@
+default 1
+label 1
+ kernel __KERNEL_PATH__
+ initrd __INITRD_PATH__
+ append root=/dev/sr0