diff options
author | Ming Liu <ming.liu@toradex.com> | 2020-05-11 20:16:05 +0200 |
---|---|---|
committer | Patrick Vacek <patrickvacek@gmail.com> | 2020-07-08 15:52:23 +0200 |
commit | f5e0a7682da5142d154d7605e5de3221d03cdab0 (patch) | |
tree | 9259c675fba7b1a5323c04e3276fe23c42af6c15 /classes | |
parent | 6628d9721de89874b8ae735dcacfa3c214e3d207 (diff) | |
download | meta-updater-f5e0a7682da5142d154d7605e5de3221d03cdab0.tar.gz |
meta: introduce ostree-kernel-initramfs recipe
We package kernel image, devicetrees, initramfs and install them to
/usr/lib/modules/${KERNEL_VERSION}, which is the preferred location
according to ostree's new implementation, this could simplify the
deployment.
Reference:
https://github.com/ostreedev/ostree/commit/3ab0d5e6644885440bac6abd17b6d2637df5435f
To let initramfs-ostree-image be able to be depended by
ostree-kernel-initramfs, it must inherit nopackages to avoid a annoying
QA warning like the follows:
| WARNING: initramfs-ostree-image-0.0.1-r0 do_package: Manifest ...initramfs-ostree-image.packagedata
| not found in colibri_imx6 armv7ahf-neon-imx armv7at2hf-neon-imx armv7at2hf-neon armv7ahf-neon armv7at2hf-vfp
| armv7ahf-vfp armv6thf-vfp armv6hf-vfp armv5tehf-vfp armv5ehf-vfp armv5thf-vfp armv5hf-vfp allarch
| x86_64_x86_64-nativesdk (variant '')?
Also we need define OSTREE_KERNEL, OSTREE_DEPLOY_DEVICETREE and
OSTREE_DEVICETREE in sota.bbclass so they could be accessed in other
recipes as well as in image recipes.
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
Signed-off-by: Ming Liu <ming.liu@toradex.com>
Diffstat (limited to 'classes')
-rw-r--r-- | classes/image_types_ostree.bbclass | 24 | ||||
-rw-r--r-- | classes/sota.bbclass | 8 |
2 files changed, 7 insertions, 25 deletions
diff --git a/classes/image_types_ostree.bbclass b/classes/image_types_ostree.bbclass index ead4693..392a42a 100644 --- a/classes/image_types_ostree.bbclass +++ b/classes/image_types_ostree.bbclass | |||
@@ -1,14 +1,11 @@ | |||
1 | # OSTree deployment | 1 | # OSTree deployment |
2 | inherit distro_features_check | 2 | inherit distro_features_check |
3 | 3 | ||
4 | OSTREE_KERNEL ??= "${KERNEL_IMAGETYPE}" | ||
5 | OSTREE_ROOTFS ??= "${WORKDIR}/ostree-rootfs" | 4 | OSTREE_ROOTFS ??= "${WORKDIR}/ostree-rootfs" |
6 | OSTREE_COMMIT_SUBJECT ??= "Commit-id: ${IMAGE_NAME}" | 5 | OSTREE_COMMIT_SUBJECT ??= "Commit-id: ${IMAGE_NAME}" |
7 | OSTREE_COMMIT_BODY ??= "" | 6 | OSTREE_COMMIT_BODY ??= "" |
8 | OSTREE_COMMIT_VERSION ??= "${DISTRO_VERSION}" | 7 | OSTREE_COMMIT_VERSION ??= "${DISTRO_VERSION}" |
9 | OSTREE_UPDATE_SUMMARY ??= "0" | 8 | OSTREE_UPDATE_SUMMARY ??= "0" |
10 | OSTREE_DEPLOY_DEVICETREE ??= "0" | ||
11 | OSTREE_DEVICETREE ??= "${KERNEL_DEVICETREE}" | ||
12 | 9 | ||
13 | BUILD_OSTREE_TARBALL ??= "1" | 10 | BUILD_OSTREE_TARBALL ??= "1" |
14 | 11 | ||
@@ -136,27 +133,6 @@ IMAGE_CMD_ostree () { | |||
136 | 133 | ||
137 | ln -sf ../var/usrlocal usr/local | 134 | ln -sf ../var/usrlocal usr/local |
138 | 135 | ||
139 | if [ "${KERNEL_IMAGETYPE}" = "fitImage" ]; then | ||
140 | # this is a hack for ostree not to override init= in kernel cmdline - | ||
141 | # make it think that the initramfs is present (while it is in FIT image) | ||
142 | # since initramfs is fake file, it does not need to be included in checksum | ||
143 | checksum=$(sha256sum ${DEPLOY_DIR_IMAGE}/${OSTREE_KERNEL} | cut -f 1 -d " ") | ||
144 | touch boot/initramfs-${checksum} | ||
145 | else | ||
146 | if [ ${@ oe.types.boolean('${OSTREE_DEPLOY_DEVICETREE}')} = True ] && [ -n "${OSTREE_DEVICETREE}" ]; then | ||
147 | checksum=$(cat ${DEPLOY_DIR_IMAGE}/${OSTREE_KERNEL} ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES} ${OSTREE_DEVICETREE} | sha256sum | cut -f 1 -d " ") | ||
148 | for DTS_FILE in ${OSTREE_DEVICETREE}; do | ||
149 | DTS_FILE_BASENAME=$(basename ${DTS_FILE}) | ||
150 | cp ${DEPLOY_DIR_IMAGE}/${DTS_FILE_BASENAME} boot/devicetree-${DTS_FILE_BASENAME}-${checksum} | ||
151 | done | ||
152 | else | ||
153 | checksum=$(cat ${DEPLOY_DIR_IMAGE}/${OSTREE_KERNEL} ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES} | sha256sum | cut -f 1 -d " ") | ||
154 | fi | ||
155 | cp ${DEPLOY_DIR_IMAGE}/${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES} boot/initramfs-${checksum} | ||
156 | fi | ||
157 | |||
158 | cp ${DEPLOY_DIR_IMAGE}/${OSTREE_KERNEL} boot/vmlinuz-${checksum} | ||
159 | |||
160 | # Copy image manifest | 136 | # Copy image manifest |
161 | cat ${IMAGE_MANIFEST} | cut -d " " -f1,3 > usr/package.manifest | 137 | cat ${IMAGE_MANIFEST} | cut -d " " -f1,3 > usr/package.manifest |
162 | } | 138 | } |
diff --git a/classes/sota.bbclass b/classes/sota.bbclass index c248cfc..52b8747 100644 --- a/classes/sota.bbclass +++ b/classes/sota.bbclass | |||
@@ -5,8 +5,11 @@ SOTA_CLIENT_PROV ??= "aktualizr-shared-prov" | |||
5 | SOTA_DEPLOY_CREDENTIALS ?= "1" | 5 | SOTA_DEPLOY_CREDENTIALS ?= "1" |
6 | SOTA_HARDWARE_ID ??= "${MACHINE}" | 6 | SOTA_HARDWARE_ID ??= "${MACHINE}" |
7 | 7 | ||
8 | IMAGE_INSTALL_append_sota = " ostree os-release ${SOTA_CLIENT} ${SOTA_CLIENT_PROV}" | ||
9 | IMAGE_CLASSES += " image_types_ostree image_types_ota image_repo_manifest" | 8 | IMAGE_CLASSES += " image_types_ostree image_types_ota image_repo_manifest" |
9 | IMAGE_INSTALL_append_sota = " ${SOTA_CLIENT} ${SOTA_CLIENT_PROV} \ | ||
10 | ostree os-release ostree-kernel \ | ||
11 | ${@'ostree-initramfs' if d.getVar('KERNEL_IMAGETYPE') != 'fitImage' else ''} \ | ||
12 | ${@'ostree-devicetrees' if oe.types.boolean('${OSTREE_DEPLOY_DEVICETREE}') else ''}" | ||
10 | 13 | ||
11 | IMAGE_FSTYPES += "${@bb.utils.contains('DISTRO_FEATURES', 'sota', 'ostreepush garagesign garagecheck ota-ext4 wic', ' ', d)}" | 14 | IMAGE_FSTYPES += "${@bb.utils.contains('DISTRO_FEATURES', 'sota', 'ostreepush garagesign garagecheck ota-ext4 wic', ' ', d)}" |
12 | IMAGE_FSTYPES += "${@bb.utils.contains('BUILD_OSTREE_TARBALL', '1', 'ostree.tar.bz2', ' ', d)}" | 15 | IMAGE_FSTYPES += "${@bb.utils.contains('BUILD_OSTREE_TARBALL', '1', 'ostree.tar.bz2', ' ', d)}" |
@@ -27,6 +30,9 @@ OSTREE_BRANCHNAME ?= "${SOTA_HARDWARE_ID}" | |||
27 | OSTREE_OSNAME ?= "poky" | 30 | OSTREE_OSNAME ?= "poky" |
28 | OSTREE_BOOTLOADER ??= 'u-boot' | 31 | OSTREE_BOOTLOADER ??= 'u-boot' |
29 | OSTREE_BOOT_PARTITION ??= "/boot" | 32 | OSTREE_BOOT_PARTITION ??= "/boot" |
33 | OSTREE_KERNEL ??= "${KERNEL_IMAGETYPE}" | ||
34 | OSTREE_DEPLOY_DEVICETREE ??= "0" | ||
35 | OSTREE_DEVICETREE ??= "${KERNEL_DEVICETREE}" | ||
30 | 36 | ||
31 | INITRAMFS_IMAGE ?= "initramfs-ostree-image" | 37 | INITRAMFS_IMAGE ?= "initramfs-ostree-image" |
32 | 38 | ||