meta-digi-dey: swu-images: simplify sw-description file
The fact of including both storage types (mtd and mmc) in the same 'sw-description' file is not providing any kind of benefit. Instead, it makes the file larger, complex and harder to maintain. Additionally, most of the images entries share the same structure and contents, changing only names and mount points. This commit simplifies the 'sw-description' file by configuring the storage type and the images to include in the SWU package at build time, using a generic 'sw-description' template and template files for 'mmc' and 'mtd' images. While on it, use the new 'DEY_FIRMWARE_VERSION' variable for SWU package version and fix the recipe to not include all 'SRC_URI' files in the SWU update image, but only the required files for the update. Also, make use of variable substitution provided by SWU class in the 'sw-description' file. Note: SWU U-Boot update will be broken after this change. Waiting for official support with a robust implementation. https://onedigi.atlassian.net/browse/DEL-8537 https://onedigi.atlassian.net/browse/DEL-8538 Signed-off-by: David Escalona <david.escalona@digi.com>
This commit is contained in:
parent
96af1bd3de
commit
a04af0cbc1
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
filename = "##IMG_NAME##";
|
||||||
|
device = "##DEV##";
|
||||||
|
type = "raw";
|
||||||
|
sha256 = "$swupdate_get_sha256(##IMG_NAME##)";
|
||||||
|
compressed = "zlib";
|
||||||
|
installed-directly = true;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
{
|
||||||
|
filename = "##IMG_NAME##";
|
||||||
|
volume = "##DEV##";
|
||||||
|
type = "ubivol";
|
||||||
|
sha256 = "$swupdate_get_sha256(##IMG_NAME##)";
|
||||||
|
installed-directly = true;
|
||||||
|
}
|
||||||
|
|
@ -1,167 +0,0 @@
|
||||||
software =
|
|
||||||
{
|
|
||||||
version = "##SW_VERSION##";
|
|
||||||
description = "##DESCRIPTION##";
|
|
||||||
|
|
||||||
mmc = {
|
|
||||||
primary: {
|
|
||||||
images: (
|
|
||||||
{
|
|
||||||
filename = "##BOOTIMG_NAME##";
|
|
||||||
device = "##BOOT_DEV_A##";
|
|
||||||
type = "raw";
|
|
||||||
sha256 = "$swupdate_get_sha256(##BOOTIMG_NAME##)";
|
|
||||||
installed-directly = true;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
filename = "##ROOTIMG_NAME##";
|
|
||||||
device = "##ROOTFS_DEV_A##";
|
|
||||||
type = "raw";
|
|
||||||
sha256 = "$swupdate_get_sha256(##ROOTIMG_NAME##)";
|
|
||||||
compressed = "zlib";
|
|
||||||
installed-directly = true;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
uboot: (
|
|
||||||
{
|
|
||||||
name = "upgrade_available";
|
|
||||||
value = "1";
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "rootfstype"
|
|
||||||
value = "##ROOTFS_TYPE##"
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
secondary: {
|
|
||||||
images: (
|
|
||||||
{
|
|
||||||
filename = "##BOOTIMG_NAME##";
|
|
||||||
device = "##BOOT_DEV_B##";
|
|
||||||
type = "raw";
|
|
||||||
sha256 = "$swupdate_get_sha256(##BOOTIMG_NAME##)";
|
|
||||||
installed-directly = true;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
filename = "##ROOTIMG_NAME##";
|
|
||||||
device = "##ROOTFS_DEV_B##";
|
|
||||||
type = "raw";
|
|
||||||
sha256 = "$swupdate_get_sha256(##ROOTIMG_NAME##)";
|
|
||||||
compressed = "zlib";
|
|
||||||
installed-directly = true;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
uboot: (
|
|
||||||
{
|
|
||||||
name = "upgrade_available";
|
|
||||||
value = "1";
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "rootfstype"
|
|
||||||
value = "##ROOTFS_TYPE##"
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
single: {
|
|
||||||
images: (
|
|
||||||
{
|
|
||||||
filename = "##BOOTIMG_NAME##";
|
|
||||||
device = "##BOOT_DEV##";
|
|
||||||
type = "raw";
|
|
||||||
sha256 = "$swupdate_get_sha256(##BOOTIMG_NAME##)";
|
|
||||||
installed-directly = true;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
filename = "##ROOTIMG_NAME##";
|
|
||||||
device = "##ROOTFS_DEV##";
|
|
||||||
type ="raw";
|
|
||||||
sha256 = "$swupdate_get_sha256(##ROOTIMG_NAME##)";
|
|
||||||
compressed = "zlib";
|
|
||||||
installed-directly = true;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
platform = {
|
|
||||||
ref = "#./single";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
mtd = {
|
|
||||||
primary: {
|
|
||||||
images: (
|
|
||||||
{
|
|
||||||
filename = "##BOOTIMG_NAME##";
|
|
||||||
volume = "##BOOT_DEV_A##";
|
|
||||||
type = "ubivol";
|
|
||||||
sha256 = "$swupdate_get_sha256(##BOOTIMG_NAME##)";
|
|
||||||
installed-directly = true;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
filename = "##ROOTIMG_NAME##";
|
|
||||||
volume = "##ROOTFS_DEV_A##";
|
|
||||||
type = "ubivol";
|
|
||||||
sha256 = "$swupdate_get_sha256(##ROOTIMG_NAME##)";
|
|
||||||
installed-directly = true;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
uboot: (
|
|
||||||
{
|
|
||||||
name = "upgrade_available";
|
|
||||||
value = "1";
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "rootfstype"
|
|
||||||
value = "##ROOTFS_TYPE##"
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
secondary: {
|
|
||||||
images: (
|
|
||||||
{
|
|
||||||
filename = "##BOOTIMG_NAME##";
|
|
||||||
volume = "##BOOT_DEV_B##";
|
|
||||||
type = "ubivol";
|
|
||||||
sha256 = "$swupdate_get_sha256(##BOOTIMG_NAME##)";
|
|
||||||
installed-directly = true;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
filename = "##ROOTIMG_NAME##";
|
|
||||||
volume = "##ROOTFS_DEV_B##";
|
|
||||||
type = "ubivol";
|
|
||||||
sha256 = "$swupdate_get_sha256(##ROOTIMG_NAME##)";
|
|
||||||
installed-directly = true;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
uboot: (
|
|
||||||
{
|
|
||||||
name = "upgrade_available";
|
|
||||||
value = "1";
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name = "rootfstype"
|
|
||||||
value = "##ROOTFS_TYPE##"
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
single: {
|
|
||||||
images: (
|
|
||||||
{
|
|
||||||
filename = "##BOOTIMG_NAME##";
|
|
||||||
volume = "##BOOT_DEV##";
|
|
||||||
type = "ubivol";
|
|
||||||
sha256 = "$swupdate_get_sha256(##BOOTIMG_NAME##)";
|
|
||||||
installed-directly = true;
|
|
||||||
},
|
|
||||||
{
|
|
||||||
filename = "##ROOTIMG_NAME##";
|
|
||||||
volume = "##ROOTFS_DEV##";
|
|
||||||
type ="ubivol";
|
|
||||||
sha256 = "$swupdate_get_sha256(##ROOTIMG_NAME##)";
|
|
||||||
installed-directly = true;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
platform = {
|
|
||||||
ref = "#./single";
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
software =
|
software =
|
||||||
{
|
{
|
||||||
version = "##SW_VERSION##";
|
version = "##FW_VERSION##";
|
||||||
description = "##DESCRIPTION##";
|
description = "##DESCRIPTION##";
|
||||||
|
|
||||||
mmc = {
|
mmc = {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,52 @@
|
||||||
|
software =
|
||||||
|
{
|
||||||
|
version = "@@DEY_FIRMWARE_VERSION@@";
|
||||||
|
description = "@@DESCRIPTION@@";
|
||||||
|
|
||||||
|
@@SWUPDATE_STORAGE_TYPE@@ = {
|
||||||
|
primary: {
|
||||||
|
images: (
|
||||||
|
##IMAGES_PRIMARY##
|
||||||
|
);
|
||||||
|
uboot: (
|
||||||
|
{
|
||||||
|
name = "upgrade_available";
|
||||||
|
value = "1";
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "rootfstype"
|
||||||
|
value = "@@ROOTFS_TYPE@@"
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
secondary: {
|
||||||
|
images: (
|
||||||
|
##IMAGES_SECONDARY##
|
||||||
|
);
|
||||||
|
uboot: (
|
||||||
|
{
|
||||||
|
name = "upgrade_available";
|
||||||
|
value = "1";
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "rootfstype"
|
||||||
|
value = "@@ROOTFS_TYPE@@"
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
single: {
|
||||||
|
images: (
|
||||||
|
##IMAGES_SINGLE##
|
||||||
|
);
|
||||||
|
uboot: (
|
||||||
|
{
|
||||||
|
name = "rootfstype"
|
||||||
|
value = "@@ROOTFS_TYPE@@"
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
platform = {
|
||||||
|
ref = "#./single";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (C) 2016-2022, Digi International Inc.
|
# Copyright (C) 2016-2023, Digi International Inc.
|
||||||
|
|
||||||
SUMMARY = "Generate update package for SWUpdate"
|
SUMMARY = "Generate update package for SWUpdate"
|
||||||
SECTION = "base"
|
SECTION = "base"
|
||||||
|
|
@ -6,10 +6,12 @@ LICENSE = "GPL-2.0-only"
|
||||||
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
|
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
|
||||||
|
|
||||||
SRC_URI = " \
|
SRC_URI = " \
|
||||||
file://sw-description \
|
file://sw-description_template \
|
||||||
file://sw-description-uboot \
|
file://sw-description-uboot \
|
||||||
file://swupdate_uboot_nand.sh \
|
file://swupdate_uboot_nand.sh \
|
||||||
file://swupdate_uboot_mmc.sh \
|
file://swupdate_uboot_mmc.sh \
|
||||||
|
file://image_template_mmc \
|
||||||
|
file://image_template_nand \
|
||||||
"
|
"
|
||||||
|
|
||||||
inherit swupdate
|
inherit swupdate
|
||||||
|
|
@ -18,20 +20,27 @@ IMAGE_DEPENDS = "${@get_baseimg_pn(d)}"
|
||||||
|
|
||||||
IMG_NAME = "${IMAGE_DEPENDS}"
|
IMG_NAME = "${IMAGE_DEPENDS}"
|
||||||
|
|
||||||
|
# Determine the correct UBoot update script file to use depending on storage type.
|
||||||
|
SWUPDATE_UBOOT_SCRIPT = "${@oe.utils.conditional('STORAGE_MEDIA', 'mmc', 'swupdate_uboot_mmc.sh', 'swupdate_uboot_nand.sh', d)}"
|
||||||
|
|
||||||
|
# Determine the storage type.
|
||||||
|
SWUPDATE_STORAGE_TYPE = "${@oe.utils.conditional('STORAGE_MEDIA', 'mmc', 'mmc', 'mtd', d)}"
|
||||||
|
|
||||||
|
# Avoid all 'SRC_URI' files to be included in the SWU image. Include only 'SWUPDATE_IMAGES' files and 'sw-description' (added by default).
|
||||||
|
INHIBIT_SWUPDATE_ADD_SRC_URI = "true"
|
||||||
|
|
||||||
SWUPDATE_IMAGES = " \
|
SWUPDATE_IMAGES = " \
|
||||||
${IMG_NAME} \
|
${IMG_NAME} \
|
||||||
${@oe.utils.ifelse(d.getVar('SWUPDATE_UBOOTIMG') == 'true', '${UBOOT_PREFIX}', '')} \
|
${@oe.utils.ifelse(d.getVar('SWUPDATE_UBOOTIMG') == 'true', '${UBOOT_PREFIX}', '')} \
|
||||||
|
${@oe.utils.ifelse(d.getVar('SWUPDATE_UBOOTIMG') == 'true', '${SWUPDATE_UBOOT_SCRIPT}', '')} \
|
||||||
"
|
"
|
||||||
|
|
||||||
SOFTWARE_VERSION ?= "0.0.1"
|
|
||||||
DESCRIPTION = "${@oe.utils.ifelse(d.getVar('TRUSTFENCE_ENCRYPT_ROOTFS') == '1', 'Encrypted rootfs ${IMG_NAME} update', '${IMG_NAME} update')}"
|
DESCRIPTION = "${@oe.utils.ifelse(d.getVar('TRUSTFENCE_ENCRYPT_ROOTFS') == '1', 'Encrypted rootfs ${IMG_NAME} update', '${IMG_NAME} update')}"
|
||||||
|
|
||||||
UBOOT_EXT ?= ".${UBOOT_SUFFIX}"
|
UBOOT_EXT ?= ".${UBOOT_SUFFIX}"
|
||||||
|
|
||||||
UBOOTIMG_OFFSET ?= "${BOOTLOADER_SEEK_BOOT}"
|
UBOOTIMG_OFFSET ?= "${BOOTLOADER_SEEK_BOOT}"
|
||||||
|
|
||||||
SWUPDATE_STORAGE_MEDIA = "${@oe.utils.conditional('STORAGE_MEDIA', 'mmc', 'swupdate_uboot_mmc.sh', 'swupdate_uboot_nand.sh', d)}"
|
|
||||||
|
|
||||||
python () {
|
python () {
|
||||||
img_fstypes = d.getVar('BOOTFS_EXT') + " " + d.getVar('ROOTFS_EXT')
|
img_fstypes = d.getVar('BOOTFS_EXT') + " " + d.getVar('ROOTFS_EXT')
|
||||||
d.setVarFlag("SWUPDATE_IMAGES_FSTYPES", d.getVar('IMG_NAME'), img_fstypes)
|
d.setVarFlag("SWUPDATE_IMAGES_FSTYPES", d.getVar('IMG_NAME'), img_fstypes)
|
||||||
|
|
@ -51,7 +60,6 @@ def get_baseimg_pn(d):
|
||||||
file_name = d.getVar('PN')
|
file_name = d.getVar('PN')
|
||||||
return file_name[:file_name.find("-swu")]
|
return file_name[:file_name.find("-swu")]
|
||||||
|
|
||||||
|
|
||||||
# Dual boot partition names for eMMC or MTD
|
# Dual boot partition names for eMMC or MTD
|
||||||
BOOT_DEV_NAME_A ?= "${@bb.utils.contains('STORAGE_MEDIA', 'mmc', '/dev/mmcblk0p1', 'linux_a', d)}"
|
BOOT_DEV_NAME_A ?= "${@bb.utils.contains('STORAGE_MEDIA', 'mmc', '/dev/mmcblk0p1', 'linux_a', d)}"
|
||||||
BOOT_DEV_NAME_B ?= "${@bb.utils.contains('STORAGE_MEDIA', 'mmc', '/dev/mmcblk0p2', 'linux_b', d)}"
|
BOOT_DEV_NAME_B ?= "${@bb.utils.contains('STORAGE_MEDIA', 'mmc', '/dev/mmcblk0p2', 'linux_b', d)}"
|
||||||
|
|
@ -59,35 +67,58 @@ ROOTFS_DEV_NAME_A ?= "${@bb.utils.contains('STORAGE_MEDIA', 'mmc', '/dev/mmcblk0
|
||||||
ROOTFS_DEV_NAME_B ?= "${@bb.utils.contains('STORAGE_MEDIA', 'mmc', '/dev/mmcblk0p4', 'rootfs_b', d)}"
|
ROOTFS_DEV_NAME_B ?= "${@bb.utils.contains('STORAGE_MEDIA', 'mmc', '/dev/mmcblk0p4', 'rootfs_b', d)}"
|
||||||
|
|
||||||
ROOTFS_TYPE = "${@bb.utils.contains('IMAGE_FEATURES', 'read-only-rootfs', 'squashfs', '', d)}"
|
ROOTFS_TYPE = "${@bb.utils.contains('IMAGE_FEATURES', 'read-only-rootfs', 'squashfs', '', d)}"
|
||||||
|
|
||||||
|
# Image template based on storage type.
|
||||||
|
IMAGE_TEMPLATE_FILE = "${@bb.utils.contains('STORAGE_MEDIA', 'mmc', '${WORKDIR}/image_template_mmc', '${WORKDIR}/image_template_nand', d)}"
|
||||||
|
|
||||||
do_unpack[postfuncs] += "fill_description"
|
do_unpack[postfuncs] += "fill_description"
|
||||||
|
|
||||||
fill_description() {
|
fill_description() {
|
||||||
if [ "${SWUPDATE_UBOOTIMG}" = "true" ]; then
|
if [ "${SWUPDATE_UBOOTIMG}" = "true" ]; then
|
||||||
cp ${WORKDIR}/sw-description-uboot ${WORKDIR}/sw-description
|
cp ${WORKDIR}/sw-description-uboot ${WORKDIR}/sw-description
|
||||||
|
cp ${WORKDIR}/${SWUPDATE_UBOOT_SCRIPT} ${DEPLOY_DIR_IMAGE}/${SWUPDATE_UBOOT_SCRIPT}
|
||||||
if [ "${TRUSTFENCE_DEK_PATH}" != "0" ] && [ "${TRUSTFENCE_DEK_PATH}" != "default" ]; then
|
if [ "${TRUSTFENCE_DEK_PATH}" != "0" ] && [ "${TRUSTFENCE_DEK_PATH}" != "default" ]; then
|
||||||
sed -i -e "s,##UBOOTIMG_ENC##,enc,g" "${WORKDIR}/sw-description"
|
sed -i -e "s,##UBOOTIMG_ENC##,enc,g" "${WORKDIR}/sw-description"
|
||||||
else
|
else
|
||||||
sed -i -e "s,##UBOOTIMG_ENC##,normal,g" "${WORKDIR}/sw-description"
|
sed -i -e "s,##UBOOTIMG_ENC##,normal,g" "${WORKDIR}/sw-description"
|
||||||
fi
|
fi
|
||||||
sed -i -e "s,##UBOOTIMG_NAME##,${UBOOT_PREFIX}-${MACHINE}${UBOOT_EXT},g" "${WORKDIR}/sw-description"
|
sed -i -e "s,##UBOOTIMG_NAME##,${UBOOT_PREFIX}-${MACHINE}${UBOOT_EXT},g" "${WORKDIR}/sw-description"
|
||||||
sed -i -e "s,##SWUPDATE_UBOOT_SCRIPT##,${SWUPDATE_STORAGE_MEDIA},g" "${WORKDIR}/sw-description"
|
sed -i -e "s,##SWUPDATE_UBOOT_SCRIPT##,${SWUPDATE_UBOOT_SCRIPT},g" "${WORKDIR}/sw-description"
|
||||||
sed -i -e "s,##UBOOTIMG_OFFSET##,${UBOOTIMG_OFFSET},g" "${WORKDIR}/sw-description"
|
sed -i -e "s,##UBOOTIMG_OFFSET##,${UBOOTIMG_OFFSET},g" "${WORKDIR}/sw-description"
|
||||||
|
else
|
||||||
|
cp ${WORKDIR}/sw-description_template ${WORKDIR}/sw-description
|
||||||
fi
|
fi
|
||||||
sed -i -e "s,##BOOTIMG_NAME##,${IMG_NAME}-${MACHINE}${BOOTFS_EXT},g" "${WORKDIR}/sw-description"
|
|
||||||
sed -i -e "s,##BOOT_DEV##,${BOOT_DEV_NAME},g" "${WORKDIR}/sw-description"
|
|
||||||
sed -i -e "s,##ROOTIMG_NAME##,${IMG_NAME}-${MACHINE}${ROOTFS_EXT},g" "${WORKDIR}/sw-description"
|
|
||||||
sed -i -e "s,##ROOTFS_DEV##,${ROOTFS_DEV_NAME_FINAL},g" "${WORKDIR}/sw-description"
|
|
||||||
sed -i -e "s,##SW_VERSION##,${SOFTWARE_VERSION},g" "${WORKDIR}/sw-description"
|
|
||||||
sed -i -e "s,##DESCRIPTION##,${DESCRIPTION},g" "${WORKDIR}/sw-description"
|
|
||||||
|
|
||||||
# Dualboot description
|
# Build image names.
|
||||||
sed -i -e "s,##BOOT_DEV_A##,${BOOT_DEV_NAME_A},g" "${WORKDIR}/sw-description"
|
BOOT_IMAGE_NAME="${IMG_NAME}-${MACHINE}${BOOTFS_EXT}"
|
||||||
sed -i -e "s,##BOOT_DEV_B##,${BOOT_DEV_NAME_B},g" "${WORKDIR}/sw-description"
|
ROOTFS_IMAGE_NAME="${IMG_NAME}-${MACHINE}${ROOTFS_EXT}"
|
||||||
sed -i -e "s,##ROOTFS_DEV_A##,${ROOTFS_DEV_NAME_A},g" "${WORKDIR}/sw-description"
|
|
||||||
sed -i -e "s,##ROOTFS_DEV_B##,${ROOTFS_DEV_NAME_B},g" "${WORKDIR}/sw-description"
|
# Add primary bank images section for dual boot systems.
|
||||||
|
printf "%s,\n%s\n" \
|
||||||
|
"$(sed -e "s,##IMG_NAME##,${BOOT_IMAGE_NAME},g" -e "s,##DEV##,${BOOT_DEV_NAME_A},g" -e "/compressed/d" "${IMAGE_TEMPLATE_FILE}")" \
|
||||||
|
"$(sed -e "s,##IMG_NAME##,${ROOTFS_IMAGE_NAME},g" -e "s,##DEV##,${ROOTFS_DEV_NAME_A},g" "${IMAGE_TEMPLATE_FILE}")" \
|
||||||
|
> images_temp.txt
|
||||||
|
sed -i -e "/##IMAGES_PRIMARY##/r images_temp.txt" -e "/##IMAGES_PRIMARY##/d" "${WORKDIR}/sw-description"
|
||||||
|
|
||||||
|
# Add secondary bank images section for dual boot systems.
|
||||||
|
printf "%s,\n%s\n" \
|
||||||
|
"$(sed -e "s,##IMG_NAME##,${BOOT_IMAGE_NAME},g" -e "s,##DEV##,${BOOT_DEV_NAME_B},g" -e "/compressed/d" "${IMAGE_TEMPLATE_FILE}")" \
|
||||||
|
"$(sed -e "s,##IMG_NAME##,${ROOTFS_IMAGE_NAME},g" -e "s,##DEV##,${ROOTFS_DEV_NAME_B},g" "${IMAGE_TEMPLATE_FILE}")" \
|
||||||
|
> images_temp.txt
|
||||||
|
sed -i -e "/##IMAGES_SECONDARY##/r images_temp.txt" -e "/##IMAGES_SECONDARY##/d" "${WORKDIR}/sw-description"
|
||||||
|
|
||||||
|
# Add images section for single boot systems.
|
||||||
|
printf "%s,\n%s\n" \
|
||||||
|
"$(sed -e "s,##IMG_NAME##,${BOOT_IMAGE_NAME},g" -e "s,##DEV##,${BOOT_DEV_NAME},g" -e "/compressed/d" "${IMAGE_TEMPLATE_FILE}")" \
|
||||||
|
"$(sed -e "s,##IMG_NAME##,${ROOTFS_IMAGE_NAME},g" -e "s,##DEV##,${ROOTFS_DEV_NAME_FINAL},g" "${IMAGE_TEMPLATE_FILE}")" \
|
||||||
|
> images_temp.txt
|
||||||
|
sed -i -e "/##IMAGES_SINGLE##/r images_temp.txt" -e "/##IMAGES_SINGLE##/d" "${WORKDIR}/sw-description"
|
||||||
|
|
||||||
|
# Remove 'compressed' flag for read-only file systems as they use 'squashfs' images.
|
||||||
if [ -n "${@bb.utils.contains('IMAGE_FEATURES', 'read-only-rootfs', '1', '', d)}" ]; then
|
if [ -n "${@bb.utils.contains('IMAGE_FEATURES', 'read-only-rootfs', '1', '', d)}" ]; then
|
||||||
sed -i '/compressed/d' "${WORKDIR}/sw-description"
|
sed -i -e "/compressed/d" "${WORKDIR}/sw-description"
|
||||||
fi
|
fi
|
||||||
sed -i -e "s,##ROOTFS_TYPE##,${ROOTFS_TYPE},g" "${WORKDIR}/sw-description"
|
|
||||||
|
|
||||||
|
# Clean dir.
|
||||||
|
rm -f images_temp.txt
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue