From 9d04183cf8aed9eaa2aa03058488b1198f73cea0 Mon Sep 17 00:00:00 2001 From: Stefan Stanacar Date: Thu, 6 Mar 2014 19:57:25 +0200 Subject: bootimg/grub-efi.bbclass: allow using a different class for EFI images Abstract away some names so one can select using EFI_PROVIDER a different class than grub-efi for populating live images, basically allowing the use of a different bootloader than grub-efi. (From OE-Core rev: 14e5de3b8f4d5902d0ac683ff45fb878e88b40ef) Signed-off-by: Stefan Stanacar Signed-off-by: Saul Wold Signed-off-by: Richard Purdie --- meta/classes/boot-directdisk.bbclass | 7 ++++--- meta/classes/bootimg.bbclass | 9 +++++---- meta/classes/grub-efi.bbclass | 12 ++++++------ 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/meta/classes/boot-directdisk.bbclass b/meta/classes/boot-directdisk.bbclass index 42b341536a..88e5c52e2b 100644 --- a/meta/classes/boot-directdisk.bbclass +++ b/meta/classes/boot-directdisk.bbclass @@ -32,7 +32,8 @@ BOOTDD_VOLUME_ID ?= "boot" BOOTDD_EXTRA_SPACE ?= "16384" EFI = "${@base_contains("MACHINE_FEATURES", "efi", "1", "0", d)}" -EFI_CLASS = "${@base_contains("MACHINE_FEATURES", "efi", "grub-efi", "", d)}" +EFI_PROVIDER ?= "grub-efi" +EFI_CLASS = "${@base_contains("MACHINE_FEATURES", "efi", "${EFI_PROVIDER}", "", d)}" # Include legacy boot if MACHINE_FEATURES includes "pcbios" or if it does not # contain "efi". This way legacy is supported by default if neither is @@ -87,7 +88,7 @@ build_boot_dd() { syslinux_hddimg_populate $HDDDIR fi if [ "${EFI}" = "1" ]; then - grubefi_hddimg_populate $HDDDIR + efi_hddimg_populate $HDDDIR fi if [ "${IS_VMDK}" = "true" ]; then @@ -154,7 +155,7 @@ python do_bootdirectdisk() { if d.getVar("PCBIOS", True) == "1": bb.build.exec_func('build_syslinux_cfg', d) if d.getVar("EFI", True) == "1": - bb.build.exec_func('build_grub_cfg', d) + bb.build.exec_func('build_efi_cfg', d) bb.build.exec_func('build_boot_dd', d) } diff --git a/meta/classes/bootimg.bbclass b/meta/classes/bootimg.bbclass index c370bd6a10..b13eef965d 100644 --- a/meta/classes/bootimg.bbclass +++ b/meta/classes/bootimg.bbclass @@ -42,7 +42,8 @@ BOOTIMG_VOLUME_ID ?= "boot" BOOTIMG_EXTRA_SPACE ?= "512" EFI = "${@base_contains("MACHINE_FEATURES", "efi", "1", "0", d)}" -EFI_CLASS = "${@base_contains("MACHINE_FEATURES", "efi", "grub-efi", "", d)}" +EFI_PROVIDER ?= "grub-efi" +EFI_CLASS = "${@base_contains("MACHINE_FEATURES", "efi", "${EFI_PROVIDER}", "", d)}" # Include legacy boot if MACHINE_FEATURES includes "pcbios" or if it does not # contain "efi". This way legacy is supported by default if neither is @@ -89,7 +90,7 @@ build_iso() { syslinux_iso_populate ${ISODIR} fi if [ "${EFI}" = "1" ]; then - grubefi_iso_populate ${ISODIR} + efi_iso_populate ${ISODIR} build_fat_img ${EFIIMGDIR} ${ISODIR}/efi.img fi @@ -206,7 +207,7 @@ build_hddimg() { syslinux_hddimg_populate ${HDDDIR} fi if [ "${EFI}" = "1" ]; then - grubefi_hddimg_populate ${HDDDIR} + efi_hddimg_populate ${HDDDIR} fi build_fat_img ${HDDDIR} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hddimg @@ -227,7 +228,7 @@ python do_bootimg() { if d.getVar("PCBIOS", True) == "1": bb.build.exec_func('build_syslinux_cfg', d) if d.getVar("EFI", True) == "1": - bb.build.exec_func('build_grub_cfg', d) + bb.build.exec_func('build_efi_cfg', d) bb.build.exec_func('build_hddimg', d) bb.build.exec_func('build_iso', d) } diff --git a/meta/classes/grub-efi.bbclass b/meta/classes/grub-efi.bbclass index 71bd00fe99..5c80c177de 100644 --- a/meta/classes/grub-efi.bbclass +++ b/meta/classes/grub-efi.bbclass @@ -26,7 +26,7 @@ GRUB_OPTS ?= "serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1" EFIDIR = "/EFI/BOOT" -grubefi_populate() { +efi_populate() { # DEST must be the root of the image so that EFIDIR is not # nested under a top level directory. DEST=$1 @@ -42,9 +42,9 @@ grubefi_populate() { install -m 0644 ${GRUBCFG} ${DEST}${EFIDIR} } -grubefi_iso_populate() { +efi_iso_populate() { iso_dir=$1 - grubefi_populate $iso_dir + efi_populate $iso_dir # Build a EFI directory to create efi.img mkdir -p ${EFIIMGDIR}/${EFIDIR} cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR} @@ -55,11 +55,11 @@ grubefi_iso_populate() { fi } -grubefi_hddimg_populate() { - grubefi_populate $1 +efi_hddimg_populate() { + efi_populate $1 } -python build_grub_cfg() { +python build_efi_cfg() { import sys workdir = d.getVar('WORKDIR', True) -- cgit v1.2.3-54-g00ecf