From: Kory Maincent <kory.maincent@bootlin.com>
To: buildroot@buildroot.org
Cc: yann.morin.1998@free.fr, thomas.petazzoni@bootlin.com
Subject: [Buildroot] [PATCH v3 4/7] fs/iso9660: add support for hybrid image using Grub bootloader on BIOS and EFI
Date: Thu, 23 Sep 2021 17:57:23 +0200 [thread overview]
Message-ID: <20210923155726.87851-5-kory.maincent@bootlin.com> (raw)
In-Reply-To: <20210923155726.87851-1-kory.maincent@bootlin.com>
Add support for building an hybrid ISO9660 image compatible with legacy
and UEFI BIOS.
The option -eltorito-alt-boot need to be used in the xorriso command
to generate the hybrid image.
Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
---
Changes in v2:
- Fix typos
Changes in v3:
- Follow changes brougt by modification of the third patch.
fs/iso9660/Config.in | 16 +++++++--------
fs/iso9660/iso9660.mk | 45 ++++++++++++++++++++++++++++---------------
2 files changed, 36 insertions(+), 25 deletions(-)
diff --git a/fs/iso9660/Config.in b/fs/iso9660/Config.in
index f8f577506d..8c4e7badf8 100644
--- a/fs/iso9660/Config.in
+++ b/fs/iso9660/Config.in
@@ -27,6 +27,10 @@ choice
config BR2_TARGET_ROOTFS_ISO9660_GRUB2
bool "grub2"
depends on BR2_TARGET_GRUB2
+ select BR2_TARGET_ROOTFS_ISO9660_BIOS_BOOTLOADER \
+ if BR2_TARGET_GRUB2_I386_PC
+ select BR2_TARGET_ROOTFS_ISO9660_EFI_BOOTLOADER \
+ if (BR2_TARGET_GRUB2_I386_EFI || BR2_TARGET_GRUB2_X86_64_EFI)
help
Use Grub 2 as the bootloader for the ISO9660 image. Make
sure to enable the 'iso9660' module in
@@ -39,21 +43,15 @@ config BR2_TARGET_ROOTFS_ISO9660_GRUB2
config BR2_TARGET_ROOTFS_ISO9660_ISOLINUX
bool "isolinux"
depends on BR2_TARGET_SYSLINUX_ISOLINUX
+ select BR2_TARGET_ROOTFS_ISO9660_BIOS_BOOTLOADER
endchoice
-choice
- prompt "Boot payload"
-
config BR2_TARGET_ROOTFS_ISO9660_BIOS_BOOTLOADER
- bool "legacy bios"
- depends on BR2_TARGET_GRUB2_I386_PC || BR2_TARGET_ROOTFS_ISO9660_ISOLINUX
+ bool
config BR2_TARGET_ROOTFS_ISO9660_EFI_BOOTLOADER
- bool "UEFI"
- depends on BR2_TARGET_GRUB2_I386_EFI || BR2_TARGET_GRUB2_X86_64_EFI
-
-endchoice
+ bool
config BR2_TARGET_ROOTFS_ISO9660_BOOT_MENU
string "Boot menu config file"
diff --git a/fs/iso9660/iso9660.mk b/fs/iso9660/iso9660.mk
index 921efa1b02..9c2535d102 100644
--- a/fs/iso9660/iso9660.mk
+++ b/fs/iso9660/iso9660.mk
@@ -67,18 +67,20 @@ ROOTFS_ISO9660_DEPENDENCIES += grub2
ROOTFS_ISO9660_BOOTLOADER_CONFIG_PATH = \
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/boot/grub/grub.cfg
ROOTFS_ISO9660_BOOT_IMAGE = boot/grub/grub-eltorito.img
-define ROOTFS_ISO9660_INSTALL_BOOTLOADER
+define ROOTFS_ISO9660_INSTALL_BOOTLOADER_BIOS
$(INSTALL) -D -m 0644 $(BINARIES_DIR)/grub-eltorito.img \
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/boot/grub/grub-eltorito.img
endef
-else ifeq ($(BR2_TARGET_ROOTFS_ISO9660_GRUB2)$(BR2_TARGET_ROOTFS_ISO9660_EFI_BOOTLOADER),yy)
+endif
+
+ifeq ($(BR2_TARGET_ROOTFS_ISO9660_GRUB2)$(BR2_TARGET_ROOTFS_ISO9660_EFI_BOOTLOADER),yy)
ROOTFS_ISO9660_DEPENDENCIES += grub2 host-dosfstools host-mtools
ROOTFS_ISO9660_EFI_PARTITION = boot/fat.efi
ROOTFS_ISO9660_EFI_PARTITION_PATH = $(ROOTFS_ISO9660_TMP_TARGET_DIR)/$(ROOTFS_ISO9660_EFI_PARTITION)
ROOTFS_ISO9660_EFI_PARTITION_CONTENT = $(BINARIES_DIR)/efi-part
ROOTFS_ISO9660_BOOTLOADER_CONFIG_PATH = \
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/boot/grub/grub.cfg
-define ROOTFS_ISO9660_INSTALL_BOOTLOADER
+define ROOTFS_ISO9660_INSTALL_BOOTLOADER_EFI
rm -rf $(ROOTFS_ISO9660_EFI_PARTITION_PATH)
mkdir -p $(dir $(ROOTFS_ISO9660_EFI_PARTITION_PATH))
dd if=/dev/zero of=$(ROOTFS_ISO9660_EFI_PARTITION_PATH) bs=1M count=1
@@ -87,12 +89,14 @@ define ROOTFS_ISO9660_INSTALL_BOOTLOADER
$(HOST_DIR)/bin/mcopy -p -m -i $(ROOTFS_ISO9660_EFI_PARTITION_PATH) -s \
$(ROOTFS_ISO9660_EFI_PARTITION_CONTENT)/* ::/
endef
-else ifeq ($(BR2_TARGET_ROOTFS_ISO9660_ISOLINUX),y)
+endif
+
+ifeq ($(BR2_TARGET_ROOTFS_ISO9660_ISOLINUX),y)
ROOTFS_ISO9660_DEPENDENCIES += syslinux
ROOTFS_ISO9660_BOOTLOADER_CONFIG_PATH = \
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/isolinux/isolinux.cfg
ROOTFS_ISO9660_BOOT_IMAGE = isolinux/isolinux.bin
-define ROOTFS_ISO9660_INSTALL_BOOTLOADER
+define ROOTFS_ISO9660_INSTALL_BOOTLOADER_BIOS
$(INSTALL) -D -m 0644 $(BINARIES_DIR)/syslinux/* \
$(ROOTFS_ISO9660_TMP_TARGET_DIR)/isolinux/
$(INSTALL) -D -m 0644 $(HOST_DIR)/share/syslinux/ldlinux.c32 \
@@ -105,7 +109,8 @@ define ROOTFS_ISO9660_PREPARATION
$(ROOTFS_ISO9660_BOOTLOADER_CONFIG_PATH)
$(SED) "s%__KERNEL_PATH__%/boot/$(LINUX_IMAGE_NAME)%" \
$(ROOTFS_ISO9660_BOOTLOADER_CONFIG_PATH)
- $(ROOTFS_ISO9660_INSTALL_BOOTLOADER)
+ $(ROOTFS_ISO9660_INSTALL_BOOTLOADER_BIOS)
+ $(ROOTFS_ISO9660_INSTALL_BOOTLOADER_EFI)
endef
ROOTFS_ISO9660_PRE_GEN_HOOKS += ROOTFS_ISO9660_PREPARATION
@@ -151,24 +156,32 @@ endif # ROOTFS_ISO9660_USE_INITRD
ROOTFS_ISO9660_OPTS += \
-J \
- -R \
- -no-emul-boot
+ -R
-ifeq ($(BR2_TARGET_ROOTFS_ISO9660_BIOS_BOOTLOADER),y)
-ROOTFS_ISO9660_OPTS += \
+ROOTFS_ISO9660_BOOTLOADER_OPTS_BIOS = \
+ -b $(ROOTFS_ISO9660_BOOT_IMAGE) \
+ -no-emul-boot \
-boot-load-size 4 \
- -boot-info-table \
- -b $(ROOTFS_ISO9660_BOOT_IMAGE)
-endif
+ -boot-info-table
-ifeq ($(BR2_TARGET_ROOTFS_ISO9660_EFI_BOOTLOADER),y)
-ROOTFS_ISO9660_OPTS += \
- --efi-boot $(ROOTFS_ISO9660_EFI_PARTITION)
+ROOTFS_ISO9660_BOOTLOADER_OPTS_EFI = \
+ --efi-boot $(ROOTFS_ISO9660_EFI_PARTITION) \
+ -no-emul-boot
+
+ifeq ($(BR2_TARGET_ROOTFS_ISO9660_BIOS_BOOTLOADER)$(BR2_TARGET_ROOTFS_ISO9660_EFI_BOOTLOADER),yy)
+ROOTFS_ISO9660_BOOTLOADER_OPTS = $(ROOTFS_ISO9660_BOOTLOADER_OPTS_BIOS)
+ROOTFS_ISO9660_BOOTLOADER_OPTS += -eltorito-alt-boot
+ROOTFS_ISO9660_BOOTLOADER_OPTS += $(ROOTFS_ISO9660_BOOTLOADER_OPTS_EFI)
+else ifeq ($(BR2_TARGET_ROOTFS_ISO9660_BIOS_BOOTLOADER),y)
+ROOTFS_ISO9660_BOOTLOADER_OPTS = $(ROOTFS_ISO9660_BOOTLOADER_OPTS_BIOS)
+else ifeq ($(BR2_TARGET_ROOTFS_ISO9660_EFI_BOOTLOADER),y)
+ROOTFS_ISO9660_BOOTLOADER_OPTS = $(ROOTFS_ISO9660_BOOTLOADER_OPTS_EFI)
endif
define ROOTFS_ISO9660_CMD
$(HOST_DIR)/bin/xorriso -as mkisofs \
$(ROOTFS_ISO9660_OPTS) \
+ $(ROOTFS_ISO9660_BOOTLOADER_OPTS) \
-o $@ $(ROOTFS_ISO9660_TMP_TARGET_DIR)
endef
--
2.25.1
_______________________________________________
buildroot mailing list
buildroot@lists.buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2021-09-23 15:58 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-23 15:57 [Buildroot] [PATCH v3 0/7] Add support for ISO9660 image compatible with Legacy and EFI BIOS Kory Maincent
2021-09-23 15:57 ` [Buildroot] [PATCH v3 1/7] board, boot, package: remove usage of startup.nsh in EFI partition Kory Maincent
2021-09-23 20:06 ` Yann E. MORIN
2021-09-24 20:28 ` Erico Nunes
2021-09-27 19:28 ` Yann E. MORIN
2021-09-27 19:27 ` Yann E. MORIN
2021-09-23 15:57 ` [Buildroot] [PATCH v3 2/7] boot/grub2: add support to build multiple Grub2 configurations in the same build Kory Maincent
2021-09-27 19:42 ` Yann E. MORIN
2021-10-06 18:11 ` Yann E. MORIN
2021-10-07 8:23 ` Köry Maincent
2021-10-07 9:53 ` Yann E. MORIN
2021-10-07 12:43 ` Köry Maincent
2021-10-07 16:29 ` Yann E. MORIN
2021-10-08 8:20 ` Köry Maincent
2021-10-11 10:27 ` Köry Maincent
2021-10-14 20:02 ` Yann E. MORIN
2021-10-14 20:27 ` Yann E. MORIN
2021-10-14 20:48 ` Adam Duskett
2021-10-14 21:02 ` Yann E. MORIN
2021-10-15 9:19 ` Köry Maincent
2021-10-15 9:28 ` Thomas Petazzoni
2021-10-15 20:50 ` Yann E. MORIN
2021-10-19 16:30 ` Adam Duskett
2021-10-20 15:58 ` Köry Maincent
2021-09-23 15:57 ` [Buildroot] [PATCH v3 3/7] fs/iso9660: add support to Grub EFI bootloader in the image Kory Maincent
2021-09-27 20:43 ` Yann E. MORIN
2021-09-28 5:35 ` Yann E. MORIN
2021-09-23 15:57 ` Kory Maincent [this message]
2021-09-27 21:05 ` [Buildroot] [PATCH v3 4/7] fs/iso9660: add support for hybrid image using Grub bootloader on BIOS and EFI Yann E. MORIN
2021-09-29 8:23 ` Köry Maincent
2021-09-29 21:26 ` Yann E. MORIN
2021-09-30 9:12 ` Köry Maincent
2021-09-23 15:57 ` [Buildroot] [PATCH v3 5/7] support/testing/infra/emulator.py: update encoding when calling qemu Kory Maincent
2021-09-30 20:28 ` Yann E. MORIN
2021-10-02 20:28 ` Yann E. MORIN
2021-10-03 9:09 ` Thomas Petazzoni
2021-10-03 12:47 ` Yann E. MORIN
2021-10-04 7:47 ` Köry Maincent
2021-10-06 14:59 ` Peter Korsgaard
2021-09-23 15:57 ` [Buildroot] [PATCH v3 6/7] boot/edk2: add support to i386 architecture Kory Maincent
2021-09-30 19:51 ` Yann E. MORIN
2021-10-03 12:49 ` Yann E. MORIN
2021-10-04 10:22 ` Köry Maincent
2021-09-23 15:57 ` [Buildroot] [PATCH v3 7/7] support/testing/tests/fs/test_iso9660.py: add support to test using EFI BIOS Kory Maincent
2021-10-03 12:50 ` Yann E. MORIN
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210923155726.87851-5-kory.maincent@bootlin.com \
--to=kory.maincent@bootlin.com \
--cc=buildroot@buildroot.org \
--cc=thomas.petazzoni@bootlin.com \
--cc=yann.morin.1998@free.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.