All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
To: Kory Maincent <kory.maincent@bootlin.com>
Cc: thomas.petazzoni@bootlin.com, buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH v3 4/7] fs/iso9660: add support for hybrid image using Grub bootloader on BIOS and EFI
Date: Wed, 29 Sep 2021 23:26:14 +0200	[thread overview]
Message-ID: <20210929212614.GM1504958@scaer> (raw)
In-Reply-To: <20210923155726.87851-5-kory.maincent@bootlin.com>

Köry, All,

On 2021-09-23 17:57 +0200, Kory Maincent spake thusly:
> 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>

Applied to master, thanks, with the folowing changes;

  - note about hybrid vs. (iso)hybrid
  - explain -eltorito-alt-boot
  - explain duplication of -no-emul-boot
  - rename the variables
  - note about the BIOS-EFI ordering

Since I had done a few changes in the previous patches, of course I had
to resolve the conflicts when applying this patch... I've tried to be as
carefull as I could, but I may have (again!) let some issues slip
theough...

Could you please review/test that it is till works as expected?

I don't think the remaining patches need rebasing, though, so I hope I
can handle more than one next evening... :-/

Regards,
Yann E. MORIN.

> ---
> 
> 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

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

  parent reply	other threads:[~2021-09-29 21:26 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 ` [Buildroot] [PATCH v3 4/7] fs/iso9660: add support for hybrid image using Grub bootloader on BIOS and EFI Kory Maincent
2021-09-27 21:05   ` Yann E. MORIN
2021-09-29  8:23     ` Köry Maincent
2021-09-29 21:26   ` Yann E. MORIN [this message]
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=20210929212614.GM1504958@scaer \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@buildroot.org \
    --cc=kory.maincent@bootlin.com \
    --cc=thomas.petazzoni@bootlin.com \
    /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.