From: Dmitry Eremin-Solenikov <dmitry_eremin-soleni...@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-soleni...@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

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to