* [PATCH v3 1/7] image-uefi.conf: add config file holding configuration for UEFI images
@ 2019-09-18 13:12 dbaryshkov
2019-09-18 13:12 ` [PATCH v3 2/7] grub-bootconf: switch to image-uefi.conf dbaryshkov
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: dbaryshkov @ 2019-09-18 13:12 UTC (permalink / raw)
To: openembedded-core; +Cc: Dmitry Eremin-Solenikov
From: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
Create new config file defining common variables for all UEFI-related
packages (bootloaders, test applications, etc).
Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
---
meta/conf/image-uefi.conf | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
create mode 100644 meta/conf/image-uefi.conf
diff --git a/meta/conf/image-uefi.conf b/meta/conf/image-uefi.conf
new file mode 100644
index 000000000000..aaeff12ccb80
--- /dev/null
+++ b/meta/conf/image-uefi.conf
@@ -0,0 +1,16 @@
+# Location of EFI files inside EFI System Partition
+EFIDIR ?= "/EFI/BOOT"
+
+# Prefix where ESP is mounted inside rootfs. Set to empty if package is going
+# to be installed to ESP directly
+EFI_PREFIX ?= "/boot"
+
+# Location inside rootfs.
+EFI_FILES_PATH = "${EFI_PREFIX}${EFIDIR}"
+
+# Determine name of bootloader image
+EFI_BOOT_IMAGE ?= "bootINVALID.efi"
+EFI_BOOT_IMAGE_x86-64 = "bootx64.efi"
+EFI_BOOT_IMAGE_x86 = "bootia32.efi"
+EFI_BOOT_IMAGE_aarch64 = "bootaa64.efi"
+EFI_BOOT_IMAGE_arm = "bootarm.efi"
--
2.23.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v3 2/7] grub-bootconf: switch to image-uefi.conf
2019-09-18 13:12 [PATCH v3 1/7] image-uefi.conf: add config file holding configuration for UEFI images dbaryshkov
@ 2019-09-18 13:12 ` dbaryshkov
2019-09-18 13:12 ` [PATCH v3 3/7] grub-efi: " dbaryshkov
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: dbaryshkov @ 2019-09-18 13:12 UTC (permalink / raw)
To: openembedded-core; +Cc: Dmitry Eremin-Solenikov
From: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
Use variables from image-uefi.conf instead of hardcoding them in the
recipe.
Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
---
meta/recipes-bsp/grub/grub-bootconf_1.00.bb | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/meta/recipes-bsp/grub/grub-bootconf_1.00.bb b/meta/recipes-bsp/grub/grub-bootconf_1.00.bb
index 9d5dab9aa808..572580313b26 100644
--- a/meta/recipes-bsp/grub/grub-bootconf_1.00.bb
+++ b/meta/recipes-bsp/grub/grub-bootconf_1.00.bb
@@ -9,6 +9,8 @@ RPROVIDES_${PN} += "virtual/grub-bootconf"
inherit grub-efi-cfg
+require conf/image-uefi.conf
+
S = "${WORKDIR}"
GRUB_CFG = "${S}/grub-bootconf"
@@ -23,10 +25,8 @@ python do_configure() {
do_configure[vardeps] += "APPEND ROOT"
do_install() {
- install -d ${D}/boot
- install -d ${D}/boot/EFI
- install -d ${D}/boot/EFI/BOOT
- install grub-bootconf ${D}/boot/EFI/BOOT/grub.cfg
+ install -d ${D}${EFI_FILES_PATH}
+ install grub-bootconf ${D}${EFI_FILES_PATH}/grub.cfg
}
-FILES_${PN} = "/boot/EFI/BOOT/grub.cfg"
+FILES_${PN} = "${EFI_FILES_PATH}/grub.cfg"
--
2.23.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v3 3/7] grub-efi: switch to image-uefi.conf
2019-09-18 13:12 [PATCH v3 1/7] image-uefi.conf: add config file holding configuration for UEFI images dbaryshkov
2019-09-18 13:12 ` [PATCH v3 2/7] grub-bootconf: switch to image-uefi.conf dbaryshkov
@ 2019-09-18 13:12 ` dbaryshkov
2019-09-18 13:12 ` [PATCH v3 4/7] grub-efi.bbclass: " dbaryshkov
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: dbaryshkov @ 2019-09-18 13:12 UTC (permalink / raw)
To: openembedded-core; +Cc: Dmitry Eremin-Solenikov
From: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
Use variables from image-uefi.conf instead of hardcoding them in the
recipe.
Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
---
meta/recipes-bsp/grub/grub-efi_2.04.bb | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/meta/recipes-bsp/grub/grub-efi_2.04.bb b/meta/recipes-bsp/grub/grub-efi_2.04.bb
index c85879b6772f..b9d6225d2774 100644
--- a/meta/recipes-bsp/grub/grub-efi_2.04.bb
+++ b/meta/recipes-bsp/grub/grub-efi_2.04.bb
@@ -1,5 +1,7 @@
require grub2.inc
+require conf/image-uefi.conf
+
GRUBPLATFORM = "efi"
DEPENDS_append_class-target = " grub-efi-native"
@@ -18,18 +20,15 @@ python __anonymous () {
prefix = "" if d.getVar('EFI_PROVIDER') == "grub-efi" else "grub-efi-"
if target == "x86_64":
grubtarget = 'x86_64'
- grubimage = prefix + "bootx64.efi"
elif re.match('i.86', target):
grubtarget = 'i386'
- grubimage = prefix + "bootia32.efi"
elif re.match('aarch64', target):
grubtarget = 'arm64'
- grubimage = prefix + "bootaa64.efi"
elif re.match('arm', target):
grubtarget = 'arm'
- grubimage = prefix + "bootarm.efi"
else:
raise bb.parse.SkipRecipe("grub-efi is incompatible with target %s" % target)
+ grubimage = prefix + d.getVar("EFI_BOOT_IMAGE")
d.setVar("GRUB_TARGET", grubtarget)
d.setVar("GRUB_IMAGE", grubimage)
prefix = "grub-efi-" if prefix == "" else ""
@@ -45,7 +44,7 @@ do_mkimage() {
cd ${B}
# Search for the grub.cfg on the local boot media by using the
# built in cfg file provided via this recipe
- grub-mkimage -c ../cfg -p /EFI/BOOT -d ./grub-core/ \
+ grub-mkimage -c ../cfg -p ${EFIDIR} -d ./grub-core/ \
-O ${GRUB_TARGET}-efi -o ./${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} \
${GRUB_BUILDIN}
}
@@ -57,10 +56,8 @@ do_mkimage_class-native() {
}
do_install_append_class-target() {
- install -d ${D}/boot
- install -d ${D}/boot/EFI
- install -d ${D}/boot/EFI/BOOT
- install -m 644 ${B}/${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} ${D}/boot/EFI/BOOT/${GRUB_IMAGE}
+ install -d ${D}${EFI_FILES_PATH}
+ install -m 644 ${B}/${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} ${D}${EFI_FILES_PATH}/${GRUB_IMAGE}
}
do_install_class-native() {
@@ -100,7 +97,7 @@ addtask deploy after do_install before do_build
FILES_${PN} = "${libdir}/grub/${GRUB_TARGET}-efi \
${datadir}/grub \
- /boot/EFI/BOOT/${GRUB_IMAGE} \
+ ${EFI_FILES_PATH}/${GRUB_IMAGE} \
"
FILES_${PN}_remove_aarch64 = "${libdir}/grub/${GRUB_TARGET}-efi"
--
2.23.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v3 4/7] grub-efi.bbclass: switch to image-uefi.conf
2019-09-18 13:12 [PATCH v3 1/7] image-uefi.conf: add config file holding configuration for UEFI images dbaryshkov
2019-09-18 13:12 ` [PATCH v3 2/7] grub-bootconf: switch to image-uefi.conf dbaryshkov
2019-09-18 13:12 ` [PATCH v3 3/7] grub-efi: " dbaryshkov
@ 2019-09-18 13:12 ` dbaryshkov
2019-09-18 13:12 ` [PATCH v3 5/7] systemd-boot: " dbaryshkov
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: dbaryshkov @ 2019-09-18 13:12 UTC (permalink / raw)
To: openembedded-core; +Cc: Dmitry Eremin-Solenikov
From: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
Use variables from image-uefi.conf instead of hardcoding them in the
class.
Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
---
meta/classes/grub-efi-cfg.bbclass | 1 -
meta/classes/grub-efi.bbclass | 20 ++++----------------
2 files changed, 4 insertions(+), 17 deletions(-)
diff --git a/meta/classes/grub-efi-cfg.bbclass b/meta/classes/grub-efi-cfg.bbclass
index f661a69f833a..8b5ff20c72c0 100644
--- a/meta/classes/grub-efi-cfg.bbclass
+++ b/meta/classes/grub-efi-cfg.bbclass
@@ -23,7 +23,6 @@ GRUB_TIMEOUT ?= "10"
#FIXME: build this from the machine config
GRUB_OPTS ?= "serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"
-EFIDIR = "/EFI/BOOT"
GRUB_ROOT ?= "${ROOT}"
APPEND ?= ""
diff --git a/meta/classes/grub-efi.bbclass b/meta/classes/grub-efi.bbclass
index ec692f1646f3..724bbe86842c 100644
--- a/meta/classes/grub-efi.bbclass
+++ b/meta/classes/grub-efi.bbclass
@@ -1,4 +1,5 @@
inherit grub-efi-cfg
+require conf/image-uefi.conf
efi_populate() {
# DEST must be the root of the image so that EFIDIR is not
@@ -7,22 +8,9 @@ efi_populate() {
install -d ${DEST}${EFIDIR}
- GRUB_IMAGE="grub-efi-bootia32.efi"
- DEST_IMAGE="bootia32.efi"
- if [ -n "${MLPREFIX}" ]; then
- if [ "${TARGET_ARCH_MULTILIB_ORIGINAL}" = "x86_64" ]; then
- GRUB_IMAGE="grub-efi-bootx64.efi"
- DEST_IMAGE="bootx64.efi"
- fi
- else
- if [ "${TARGET_ARCH}" = "x86_64" ]; then
- GRUB_IMAGE="grub-efi-bootx64.efi"
- DEST_IMAGE="bootx64.efi"
- fi
- fi
- install -m 0644 ${DEPLOY_DIR_IMAGE}/${GRUB_IMAGE} ${DEST}${EFIDIR}/${DEST_IMAGE}
+ install -m 0644 ${DEPLOY_DIR_IMAGE}/grub-efi-${EFI_BOOT_IMAGE} ${DEST}${EFIDIR}/${EFI_BOOT_IMAGE}
EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g')
- printf 'fs0:%s\%s\n' "$EFIPATH" "$DEST_IMAGE" >${DEST}/startup.nsh
+ printf 'fs0:%s\%s\n' "$EFIPATH" "${EFI_BOOT_IMAGE}" >${DEST}/startup.nsh
install -m 0644 ${GRUB_CFG} ${DEST}${EFIDIR}/grub.cfg
}
@@ -35,7 +23,7 @@ efi_iso_populate() {
cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR}
cp $iso_dir/${KERNEL_IMAGETYPE} ${EFIIMGDIR}
EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g')
- printf 'fs0:%s\%s\n' "$EFIPATH" "$GRUB_IMAGE" > ${EFIIMGDIR}/startup.nsh
+ printf 'fs0:%s\%s\n' "$EFIPATH" "grub-efi-${EFI_BOOT_IMAGE}" > ${EFIIMGDIR}/startup.nsh
if [ -f "$iso_dir/initrd" ] ; then
cp $iso_dir/initrd ${EFIIMGDIR}
fi
--
2.23.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v3 5/7] systemd-boot: switch to image-uefi.conf
2019-09-18 13:12 [PATCH v3 1/7] image-uefi.conf: add config file holding configuration for UEFI images dbaryshkov
` (2 preceding siblings ...)
2019-09-18 13:12 ` [PATCH v3 4/7] grub-efi.bbclass: " dbaryshkov
@ 2019-09-18 13:12 ` dbaryshkov
2019-09-18 13:12 ` [PATCH v3 6/7] systemd-boot.bbclass: " dbaryshkov
2019-09-18 13:12 ` [PATCH v3 7/7] live-vm-common.bbclass: provide efi population functions for live images dbaryshkov
5 siblings, 0 replies; 7+ messages in thread
From: dbaryshkov @ 2019-09-18 13:12 UTC (permalink / raw)
To: openembedded-core; +Cc: Dmitry Eremin-Solenikov
From: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
Use variables from image-uefi.conf instead of hardcoding them in the recipe.
Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
---
meta/recipes-core/systemd/systemd-boot_243.bb | 15 ++++++---------
1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/meta/recipes-core/systemd/systemd-boot_243.bb b/meta/recipes-core/systemd/systemd-boot_243.bb
index 56a25c35babc..515abc289bef 100644
--- a/meta/recipes-core/systemd/systemd-boot_243.bb
+++ b/meta/recipes-core/systemd/systemd-boot_243.bb
@@ -1,6 +1,8 @@
require systemd.inc
FILESEXTRAPATHS =. "${FILE_DIRNAME}/systemd:"
+require conf/image-uefi.conf
+
DEPENDS = "intltool-native libcap util-linux gnu-efi gperf-native"
# NOTE: These three patches are in theory not needed, but we haven't
@@ -33,16 +35,13 @@ python __anonymous () {
import re
target = d.getVar('TARGET_ARCH')
prefix = "" if d.getVar('EFI_PROVIDER') == "systemd-boot" else "systemd-"
- if target == "x86_64":
- systemdimage = prefix + "bootx64.efi"
- else:
- systemdimage = prefix + "bootia32.efi"
+ systemdimage = prefix + d.getVar("EFI_BOOT_IMAGE")
d.setVar("SYSTEMD_BOOT_IMAGE", systemdimage)
prefix = "systemd-" if prefix == "" else ""
d.setVar("SYSTEMD_BOOT_IMAGE_PREFIX", prefix)
}
-FILES_${PN} = "/boot/EFI/BOOT/${SYSTEMD_BOOT_IMAGE}"
+FILES_${PN} = "${EFI_FILES_PATH}/${SYSTEMD_BOOT_IMAGE}"
RDEPENDS_${PN} += "virtual/systemd-bootconf"
@@ -61,10 +60,8 @@ do_compile() {
}
do_install() {
- install -d ${D}/boot
- install -d ${D}/boot/EFI
- install -d ${D}/boot/EFI/BOOT
- install ${B}/src/boot/efi/systemd-boot*.efi ${D}/boot/EFI/BOOT/${SYSTEMD_BOOT_IMAGE}
+ install -d ${D}${EFI_FILES_PATH}
+ install ${B}/src/boot/efi/systemd-boot*.efi ${D}${EFI_FILES_PATH}/${SYSTEMD_BOOT_IMAGE}
}
do_deploy () {
--
2.23.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v3 6/7] systemd-boot.bbclass: switch to image-uefi.conf
2019-09-18 13:12 [PATCH v3 1/7] image-uefi.conf: add config file holding configuration for UEFI images dbaryshkov
` (3 preceding siblings ...)
2019-09-18 13:12 ` [PATCH v3 5/7] systemd-boot: " dbaryshkov
@ 2019-09-18 13:12 ` dbaryshkov
2019-09-18 13:12 ` [PATCH v3 7/7] live-vm-common.bbclass: provide efi population functions for live images dbaryshkov
5 siblings, 0 replies; 7+ messages in thread
From: dbaryshkov @ 2019-09-18 13:12 UTC (permalink / raw)
To: openembedded-core; +Cc: Dmitry Eremin-Solenikov
From: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
Use variables from image-uefi.conf instead of hardcoding them in the class.
Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
---
meta/classes/systemd-boot.bbclass | 15 ++++-----------
1 file changed, 4 insertions(+), 11 deletions(-)
diff --git a/meta/classes/systemd-boot.bbclass b/meta/classes/systemd-boot.bbclass
index 3cd6811a6ce1..bb3221dacca8 100644
--- a/meta/classes/systemd-boot.bbclass
+++ b/meta/classes/systemd-boot.bbclass
@@ -11,28 +11,21 @@
do_bootimg[depends] += "${MLPREFIX}systemd-boot:do_deploy"
-EFIDIR = "/EFI/BOOT"
+require conf/image-uefi.conf
# Need UUID utility code.
inherit fs-uuid
efi_populate() {
DEST=$1
- EFI_IMAGE="systemd-bootia32.efi"
- DEST_EFI_IMAGE="bootia32.efi"
- if [ "${TARGET_ARCH}" = "x86_64" ]; then
- EFI_IMAGE="systemd-bootx64.efi"
- DEST_EFI_IMAGE="bootx64.efi"
- fi
-
install -d ${DEST}${EFIDIR}
# systemd-boot requires these paths for configuration files
# they are not customizable so no point in new vars
install -d ${DEST}/loader
install -d ${DEST}/loader/entries
- install -m 0644 ${DEPLOY_DIR_IMAGE}/${EFI_IMAGE} ${DEST}${EFIDIR}/${DEST_EFI_IMAGE}
+ install -m 0644 ${DEPLOY_DIR_IMAGE}/systemd-${EFI_BOOT_IMAGE} ${DEST}${EFIDIR}/${EFI_BOOT_IMAGE}
EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g')
- printf 'fs0:%s\%s\n' "$EFIPATH" "$DEST_EFI_IMAGE" >${DEST}/startup.nsh
+ printf 'fs0:%s\%s\n' "$EFIPATH" "${EFI_BOOT_IMAGE}" >${DEST}/startup.nsh
install -m 0644 ${SYSTEMD_BOOT_CFG} ${DEST}/loader/loader.conf
for i in ${SYSTEMD_BOOT_ENTRIES}; do
install -m 0644 ${i} ${DEST}/loader/entries
@@ -47,7 +40,7 @@ efi_iso_populate() {
cp -r $iso_dir/loader ${EFIIMGDIR}
cp $iso_dir/${KERNEL_IMAGETYPE} ${EFIIMGDIR}
EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g')
- echo "fs0:${EFIPATH}\\${DEST_EFI_IMAGE}" > ${EFIIMGDIR}/startup.nsh
+ echo "fs0:${EFIPATH}\\${EFI_BOOT_IMAGE}" > ${EFIIMGDIR}/startup.nsh
if [ -f "$iso_dir/initrd" ] ; then
cp $iso_dir/initrd ${EFIIMGDIR}
fi
--
2.23.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v3 7/7] live-vm-common.bbclass: provide efi population functions for live images
2019-09-18 13:12 [PATCH v3 1/7] image-uefi.conf: add config file holding configuration for UEFI images dbaryshkov
` (4 preceding siblings ...)
2019-09-18 13:12 ` [PATCH v3 6/7] systemd-boot.bbclass: " dbaryshkov
@ 2019-09-18 13:12 ` dbaryshkov
5 siblings, 0 replies; 7+ messages in thread
From: dbaryshkov @ 2019-09-18 13:12 UTC (permalink / raw)
To: openembedded-core; +Cc: Dmitry Eremin-Solenikov
From: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
Define common functions for populating EFI directories in live image by
reusing common code from grub-efi and systemd-boot bbclasses.
Signed-off-by: Dmitry Eremin-Solenikov <dmitry_eremin-solenikov@mentor.com>
---
meta/classes/grub-efi.bbclass | 28 +-----------------------
meta/classes/live-vm-common.bbclass | 33 +++++++++++++++++++++++++++++
meta/classes/systemd-boot.bbclass | 22 ++-----------------
3 files changed, 36 insertions(+), 47 deletions(-)
diff --git a/meta/classes/grub-efi.bbclass b/meta/classes/grub-efi.bbclass
index 724bbe86842c..8fc6999e52a8 100644
--- a/meta/classes/grub-efi.bbclass
+++ b/meta/classes/grub-efi.bbclass
@@ -2,33 +2,7 @@ inherit grub-efi-cfg
require conf/image-uefi.conf
efi_populate() {
- # DEST must be the root of the image so that EFIDIR is not
- # nested under a top level directory.
- DEST=$1
-
- install -d ${DEST}${EFIDIR}
-
- install -m 0644 ${DEPLOY_DIR_IMAGE}/grub-efi-${EFI_BOOT_IMAGE} ${DEST}${EFIDIR}/${EFI_BOOT_IMAGE}
- EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g')
- printf 'fs0:%s\%s\n' "$EFIPATH" "${EFI_BOOT_IMAGE}" >${DEST}/startup.nsh
+ efi_populate_common "$1" grub-efi
install -m 0644 ${GRUB_CFG} ${DEST}${EFIDIR}/grub.cfg
}
-
-efi_iso_populate() {
- iso_dir=$1
- efi_populate $iso_dir
- # Build a EFI directory to create efi.img
- mkdir -p ${EFIIMGDIR}/${EFIDIR}
- cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR}
- cp $iso_dir/${KERNEL_IMAGETYPE} ${EFIIMGDIR}
- EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g')
- printf 'fs0:%s\%s\n' "$EFIPATH" "grub-efi-${EFI_BOOT_IMAGE}" > ${EFIIMGDIR}/startup.nsh
- if [ -f "$iso_dir/initrd" ] ; then
- cp $iso_dir/initrd ${EFIIMGDIR}
- fi
-}
-
-efi_hddimg_populate() {
- efi_populate $1
-}
diff --git a/meta/classes/live-vm-common.bbclass b/meta/classes/live-vm-common.bbclass
index 68105d9b84f9..74e7074a5397 100644
--- a/meta/classes/live-vm-common.bbclass
+++ b/meta/classes/live-vm-common.bbclass
@@ -29,6 +29,39 @@ def pcbios(d):
PCBIOS = "${@pcbios(d)}"
PCBIOS_CLASS = "${@['','syslinux'][d.getVar('PCBIOS') == '1']}"
+# efi_populate_common DEST BOOTLOADER
+efi_populate_common() {
+ # DEST must be the root of the image so that EFIDIR is not
+ # nested under a top level directory.
+ DEST=$1
+
+ install -d ${DEST}${EFIDIR}
+
+ install -m 0644 ${DEPLOY_DIR_IMAGE}/$2-${EFI_BOOT_IMAGE} ${DEST}${EFIDIR}/${EFI_BOOT_IMAGE}
+ EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g')
+ printf 'fs0:%s\%s\n' "$EFIPATH" "${EFI_BOOT_IMAGE}" >${DEST}/startup.nsh
+}
+
+efi_iso_populate() {
+ iso_dir=$1
+ efi_populate $iso_dir
+ # Build a EFI directory to create efi.img
+ mkdir -p ${EFIIMGDIR}/${EFIDIR}
+ cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR}
+ cp $iso_dir/${KERNEL_IMAGETYPE} ${EFIIMGDIR}
+
+ EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g')
+ printf 'fs0:%s\%s\n' "$EFIPATH" "${EFI_BOOT_IMAGE}" >${EFIIMGDIR}/startup.nsh
+
+ if [ -f "$iso_dir/initrd" ] ; then
+ cp $iso_dir/initrd ${EFIIMGDIR}
+ fi
+}
+
+efi_hddimg_populate() {
+ efi_populate $1
+}
+
inherit ${EFI_CLASS}
inherit ${PCBIOS_CLASS}
diff --git a/meta/classes/systemd-boot.bbclass b/meta/classes/systemd-boot.bbclass
index bb3221dacca8..336c4c2ff58c 100644
--- a/meta/classes/systemd-boot.bbclass
+++ b/meta/classes/systemd-boot.bbclass
@@ -16,38 +16,20 @@ require conf/image-uefi.conf
inherit fs-uuid
efi_populate() {
- DEST=$1
+ efi_populate_common "$1" systemd
- install -d ${DEST}${EFIDIR}
# systemd-boot requires these paths for configuration files
# they are not customizable so no point in new vars
install -d ${DEST}/loader
install -d ${DEST}/loader/entries
- install -m 0644 ${DEPLOY_DIR_IMAGE}/systemd-${EFI_BOOT_IMAGE} ${DEST}${EFIDIR}/${EFI_BOOT_IMAGE}
- EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g')
- printf 'fs0:%s\%s\n' "$EFIPATH" "${EFI_BOOT_IMAGE}" >${DEST}/startup.nsh
install -m 0644 ${SYSTEMD_BOOT_CFG} ${DEST}/loader/loader.conf
for i in ${SYSTEMD_BOOT_ENTRIES}; do
install -m 0644 ${i} ${DEST}/loader/entries
done
}
-efi_iso_populate() {
- iso_dir=$1
- efi_populate $iso_dir
- mkdir -p ${EFIIMGDIR}/${EFIDIR}
- cp $iso_dir/${EFIDIR}/* ${EFIIMGDIR}${EFIDIR}
+efi_iso_populate_append() {
cp -r $iso_dir/loader ${EFIIMGDIR}
- cp $iso_dir/${KERNEL_IMAGETYPE} ${EFIIMGDIR}
- EFIPATH=$(echo "${EFIDIR}" | sed 's/\//\\/g')
- echo "fs0:${EFIPATH}\\${EFI_BOOT_IMAGE}" > ${EFIIMGDIR}/startup.nsh
- if [ -f "$iso_dir/initrd" ] ; then
- cp $iso_dir/initrd ${EFIIMGDIR}
- fi
-}
-
-efi_hddimg_populate() {
- efi_populate $1
}
inherit systemd-boot-cfg
--
2.23.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2019-09-18 13:17 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-09-18 13:12 [PATCH v3 1/7] image-uefi.conf: add config file holding configuration for UEFI images dbaryshkov
2019-09-18 13:12 ` [PATCH v3 2/7] grub-bootconf: switch to image-uefi.conf dbaryshkov
2019-09-18 13:12 ` [PATCH v3 3/7] grub-efi: " dbaryshkov
2019-09-18 13:12 ` [PATCH v3 4/7] grub-efi.bbclass: " dbaryshkov
2019-09-18 13:12 ` [PATCH v3 5/7] systemd-boot: " dbaryshkov
2019-09-18 13:12 ` [PATCH v3 6/7] systemd-boot.bbclass: " dbaryshkov
2019-09-18 13:12 ` [PATCH v3 7/7] live-vm-common.bbclass: provide efi population functions for live images dbaryshkov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox