summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2015-06-09 00:21:48 +0200
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2015-06-14 23:25:18 +0200
commit795df97093a0cb027bc0c844f06778c936084abe (patch)
treeb9c4552f4c5243d903c5d13718730eb6deffa2fb /fs
parent8decd25477fe5a8bb314e65c9b1a2c9d54bc9124 (diff)
fs/iso9660: add support for grub2
After having extended the iso9660 support to allow isolinux as an alternative to grub, this commit adds grub2 as a third alternative. With the previous work done to support isolinux, adding support for grub2 is fairly trivial. [Thomas: set timeout to 10 seconds and not 5 seconds, in order to match the configuration used for grub.] 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.in18
-rw-r--r--fs/iso9660/grub.cfg7
-rw-r--r--fs/iso9660/iso9660.mk9
3 files changed, 31 insertions, 3 deletions
diff --git a/fs/iso9660/Config.in b/fs/iso9660/Config.in
index 6f057eaba..7e1ddd64f 100644
--- a/fs/iso9660/Config.in
+++ b/fs/iso9660/Config.in
@@ -2,7 +2,9 @@ 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 || BR2_TARGET_SYSLINUX_ISOLINUX
+ depends on BR2_TARGET_GRUB || \
+ BR2_TARGET_GRUB2 || \
+ BR2_TARGET_SYSLINUX_ISOLINUX
select BR2_LINUX_KERNEL_INSTALL_TARGET \
if (!BR2_TARGET_ROOTFS_ISO9660_INITRD && !BR2_TARGET_ROOTFS_INITRAMFS)
help
@@ -29,6 +31,15 @@ config BR2_TARGET_ROOTFS_ISO9660_GRUB
depends on BR2_TARGET_GRUB
select BR2_TARGET_GRUB_FS_ISO9660
+config BR2_TARGET_ROOTFS_ISO9660_GRUB2
+ bool "grub2"
+ depends on BR2_TARGET_GRUB2
+ help
+ Use Grub 2 as the bootloader for the ISO9660 image. Make
+ sure to enable the 'iso9660' module in
+ BR2_TARGET_GRUB2_BUILTIN_MODULES and to use 'cd' as the boot
+ partition in BR2_TARGET_GRUB2_BOOT_PARTITION=.
+
config BR2_TARGET_ROOTFS_ISO9660_ISOLINUX
bool "isolinux"
depends on BR2_TARGET_SYSLINUX_ISOLINUX
@@ -38,6 +49,7 @@ 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/grub.cfg" if BR2_TARGET_ROOTFS_ISO9660_GRUB2
default "fs/iso9660/isolinux.cfg" if BR2_TARGET_ROOTFS_ISO9660_ISOLINUX
help
Use this option to provide a custom bootloader configuration
@@ -69,7 +81,7 @@ config BR2_TARGET_ROOTFS_ISO9660_HYBRID
endif
-comment "iso image needs a Linux kernel and one of grub or isolinux to be built"
+comment "iso image needs a Linux kernel and one of grub, grub2 or isolinux to be built"
depends on BR2_i386 || BR2_x86_64
depends on !BR2_LINUX_KERNEL || \
- !(BR2_TARGET_GRUB || BR2_TARGET_SYSLINUX_ISOLINUX)
+ !(BR2_TARGET_GRUB || BR2_TARGET_GRUB2 || BR2_TARGET_SYSLINUX_ISOLINUX)
diff --git a/fs/iso9660/grub.cfg b/fs/iso9660/grub.cfg
new file mode 100644
index 000000000..5a74b2354
--- /dev/null
+++ b/fs/iso9660/grub.cfg
@@ -0,0 +1,7 @@
+set default="0"
+set timeout="10"
+
+menuentry "Buildroot" {
+ linux __KERNEL_PATH__ root=/dev/sr0
+ initrd __INITRD_PATH__
+}
diff --git a/fs/iso9660/iso9660.mk b/fs/iso9660/iso9660.mk
index 4f4abea9f..6ed979c64 100644
--- a/fs/iso9660/iso9660.mk
+++ b/fs/iso9660/iso9660.mk
@@ -53,6 +53,15 @@ 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_GRUB2),y)
+ROOTFS_ISO9660_DEPENDENCIES += grub2
+ROOTFS_ISO9660_BOOTLOADER_CONFIG_PATH = \
+ $(ROOTFS_ISO9660_TARGET_DIR)/boot/grub/grub.cfg
+ROOTFS_ISO9660_BOOT_IMAGE = boot/grub/grub-eltorito.img
+define ROOTFS_ISO9660_INSTALL_BOOTLOADER
+ $(INSTALL) -D -m 0644 $(BINARIES_DIR)/grub-eltorito.img \
+ $(ROOTFS_ISO9660_TARGET_DIR)/boot/grub/grub-eltorito.img
+endef
else ifeq ($(BR2_TARGET_ROOTFS_ISO9660_ISOLINUX),y)
ROOTFS_ISO9660_DEPENDENCIES += syslinux
ROOTFS_ISO9660_BOOTLOADER_CONFIG_PATH = \