[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