[Buildroot] [PATCH 0/8] Add support for ISO9660 image compatible with Legacy and EFI BIOS

Kory Maincent kory.maincent at bootlin.com
Tue Sep 14 09:34:49 UTC 2021


This series of patches aims to support the generation of an ISO9660 hybrid
image compatible with Legacy BIOS and EFI BIOS. To implement this, we need
to improve the grub2 package and modify the ISO9660 image support

Grub2 was written to build only one configuration at a time. For the hybrid
image we need to have several configuration of Grub2 in the same image.
For example we might want to have Grub2 built for BIOS, EFI 32 bits and EFI
64 bits in the same image. To support this, we chose to fill a list of
configuration name tuples, and then build each Grub2 configuration in a
separate build-$(tuple) folder. It seems simpler than having multiple
duplicated grub2 packages for each possible configuration.

The generation of ISO9660 image was only supporting bootloaders based on
Legacy BIOS boot. We first change the ISO9660 image generation to use
xorriso instead of genimageiso, in order to be able to build an image
compatible with both legacy and EFI BIOS. Then we add the generation of an
EFI System Partition in iso9660 so that we can install the EFI-compatible
bootloader."

In detail:

 - PATCH 1 implements simultaneous build of GRUB for different configurations
 - PATCH 2 enables zlib to host-xorriso package
 - PATCH 3 updates the generation of ISO9660 image to use xorriso
 - PATCH 4 implements the generation of ISO9660 image booting on a EFI BIOS
 - PATCH 5 implements the generation of hybrid image compatible with Legacy
   and EFI BIOS
 - PATCH 6 updates the encoding of the text return from testing emulator
 - PATCH 7 implements host-efi-bios package to download the EFI binaries
 - PATCH 8 updates iso9660 tests and implements a test for EFI image and
   hybrid image.

Thanks in advance for your review and feedback

Kory Maincent (8):
  boot/grub2: add support to build multiple Grub2 configurations in the
    same build
  package/xorriso: build host variant with zlib support
  fs/iso9660: switch from cdrkit to xorriso to build ISO9660 images
  fs/iso9660: add support to Grub EFI bootloader in the image
  fs/iso9660: add support for hybrid image using Grub bootloader on BIOS
    and EFI
  support/testing/infra/emulator.py: update encoding when calling qemu
  package/edk2-images: new package
  support/testing/tests/fs/test_iso9660.py: add support to test using
    EFI BIOS

 Config.in.legacy                         |  16 +++
 DEVELOPERS                               |   3 +
 boot/grub2/Config.in                     |  40 ++++--
 boot/grub2/grub2.mk                      | 165 +++++++++++++----------
 fs/iso9660/Config.in                     |  30 ++++-
 fs/iso9660/iso9660.mk                    |  59 ++++++--
 package/Config.in.host                   |   1 +
 package/edk2-images/Config.in.host       |  26 ++++
 package/edk2-images/edk2-images.mk       |  32 +++++
 package/edk2-images/rpm2cpio.sh          |  58 ++++++++
 package/xorriso/xorriso.mk               |   4 +-
 support/testing/conf/grub2-efi.cfg       |   2 +
 support/testing/infra/emulator.py        |   2 +-
 support/testing/tests/fs/test_iso9660.py |  83 +++++++++++-
 14 files changed, 417 insertions(+), 104 deletions(-)
 create mode 100644 package/edk2-images/Config.in.host
 create mode 100644 package/edk2-images/edk2-images.mk
 create mode 100755 package/edk2-images/rpm2cpio.sh
 create mode 100644 support/testing/conf/grub2-efi.cfg

-- 
2.25.1



More information about the buildroot mailing list