mirror of
https://git.yoctoproject.org/poky
synced 2026-05-30 00:20:08 +00: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"
|
BOOTDD_EXTRA_SPACE ?= "16384"
|
||||||
|
|
||||||
EFI = "${@base_contains("MACHINE_FEATURES", "efi", "1", "0", d)}"
|
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
|
# 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
|
# contain "efi". This way legacy is supported by default if neither is
|
||||||
@@ -87,7 +88,7 @@ build_boot_dd() {
|
|||||||
syslinux_hddimg_populate $HDDDIR
|
syslinux_hddimg_populate $HDDDIR
|
||||||
fi
|
fi
|
||||||
if [ "${EFI}" = "1" ]; then
|
if [ "${EFI}" = "1" ]; then
|
||||||
grubefi_hddimg_populate $HDDDIR
|
efi_hddimg_populate $HDDDIR
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${IS_VMDK}" = "true" ]; then
|
if [ "${IS_VMDK}" = "true" ]; then
|
||||||
@@ -154,7 +155,7 @@ python do_bootdirectdisk() {
|
|||||||
if d.getVar("PCBIOS", True) == "1":
|
if d.getVar("PCBIOS", True) == "1":
|
||||||
bb.build.exec_func('build_syslinux_cfg', d)
|
bb.build.exec_func('build_syslinux_cfg', d)
|
||||||
if d.getVar("EFI", True) == "1":
|
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)
|
bb.build.exec_func('build_boot_dd', d)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,8 @@ BOOTIMG_VOLUME_ID ?= "boot"
|
|||||||
BOOTIMG_EXTRA_SPACE ?= "512"
|
BOOTIMG_EXTRA_SPACE ?= "512"
|
||||||
|
|
||||||
EFI = "${@base_contains("MACHINE_FEATURES", "efi", "1", "0", d)}"
|
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
|
# 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
|
# contain "efi". This way legacy is supported by default if neither is
|
||||||
@@ -89,7 +90,7 @@ build_iso() {
|
|||||||
syslinux_iso_populate ${ISODIR}
|
syslinux_iso_populate ${ISODIR}
|
||||||
fi
|
fi
|
||||||
if [ "${EFI}" = "1" ]; then
|
if [ "${EFI}" = "1" ]; then
|
||||||
grubefi_iso_populate ${ISODIR}
|
efi_iso_populate ${ISODIR}
|
||||||
build_fat_img ${EFIIMGDIR} ${ISODIR}/efi.img
|
build_fat_img ${EFIIMGDIR} ${ISODIR}/efi.img
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -206,7 +207,7 @@ build_hddimg() {
|
|||||||
syslinux_hddimg_populate ${HDDDIR}
|
syslinux_hddimg_populate ${HDDDIR}
|
||||||
fi
|
fi
|
||||||
if [ "${EFI}" = "1" ]; then
|
if [ "${EFI}" = "1" ]; then
|
||||||
grubefi_hddimg_populate ${HDDDIR}
|
efi_hddimg_populate ${HDDDIR}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
build_fat_img ${HDDDIR} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hddimg
|
build_fat_img ${HDDDIR} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.hddimg
|
||||||
@@ -227,7 +228,7 @@ python do_bootimg() {
|
|||||||
if d.getVar("PCBIOS", True) == "1":
|
if d.getVar("PCBIOS", True) == "1":
|
||||||
bb.build.exec_func('build_syslinux_cfg', d)
|
bb.build.exec_func('build_syslinux_cfg', d)
|
||||||
if d.getVar("EFI", True) == "1":
|
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_hddimg', d)
|
||||||
bb.build.exec_func('build_iso', 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"
|
EFIDIR = "/EFI/BOOT"
|
||||||
|
|
||||||
grubefi_populate() {
|
efi_populate() {
|
||||||
# DEST must be the root of the image so that EFIDIR is not
|
# DEST must be the root of the image so that EFIDIR is not
|
||||||
# nested under a top level directory.
|
# nested under a top level directory.
|
||||||
DEST=$1
|
DEST=$1
|
||||||
@@ -42,9 +42,9 @@ grubefi_populate() {
|
|||||||
install -m 0644 ${GRUBCFG} ${DEST}${EFIDIR}
|
install -m 0644 ${GRUBCFG} ${DEST}${EFIDIR}
|
||||||
}
|
}
|
||||||
|
|
||||||
grubefi_iso_populate() {
|
efi_iso_populate() {
|
||||||
iso_dir=$1
|
iso_dir=$1
|
||||||
grubefi_populate $iso_dir
|
efi_populate $iso_dir
|
||||||
# Build a EFI directory to create efi.img
|
# Build a EFI directory to create efi.img
|
||||||
mkdir -p ${EFIIMGDIR}/${EFIDIR}
|
mkdir -p ${EFIIMGDIR}/${EFIDIR}
|
||||||
cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR}
|
cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR}
|
||||||
@@ -55,11 +55,11 @@ grubefi_iso_populate() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
grubefi_hddimg_populate() {
|
efi_hddimg_populate() {
|
||||||
grubefi_populate $1
|
efi_populate $1
|
||||||
}
|
}
|
||||||
|
|
||||||
python build_grub_cfg() {
|
python build_efi_cfg() {
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
workdir = d.getVar('WORKDIR', True)
|
workdir = d.getVar('WORKDIR', True)
|
||||||
|
|||||||
Reference in New Issue
Block a user