mirror of
https://git.yoctoproject.org/poky
synced 2026-04-04 14:02:22 +02:00
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 <stefanx.stanacar@intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
de18567e62
commit
9d04183cf8
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user