* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.