diff options
author | Ming Liu <liu.ming50@gmail.com> | 2020-11-25 10:18:48 +0100 |
---|---|---|
committer | Anatoliy Odukha <aodukha@gmail.com> | 2020-12-16 20:25:56 +0200 |
commit | 0266ff603111539cdf05d8f1dffdd5975d8ef49c (patch) | |
tree | 3920edde5f423c8e2d413559f1c9a7e6d59a87ca /classes | |
parent | cc1b38310f4ebd0558438057a1edfeb4a3555b16 (diff) | |
download | meta-updater-0266ff603111539cdf05d8f1dffdd5975d8ef49c.tar.gz |
image_types_ota.bbclass: call oe_mkext234fs to make ota-ext4 image
We dont have to maintain our own function calculate_size and use
dd/mkfs.ext4 to generate ota-ext4 image, they have been done in OE
by get_rootfs_size/oe_mkext234fs functions, we could just use them.
The major benefit could be we can sync the future fixes/changes in
these functions from OE, also avoid maintaining some duplicated code in
image_types_ota.bbclass.
Signed-off-by: Ming Liu <liu.ming50@gmail.com>
Diffstat (limited to 'classes')
-rw-r--r-- | classes/image_types_ota.bbclass | 62 |
1 files changed, 6 insertions, 56 deletions
diff --git a/classes/image_types_ota.bbclass b/classes/image_types_ota.bbclass index 36a6a64..753136e 100644 --- a/classes/image_types_ota.bbclass +++ b/classes/image_types_ota.bbclass | |||
@@ -1,42 +1,3 @@ | |||
1 | # Image to use with u-boot as BIOS and OSTree deployment system | ||
2 | |||
3 | # Boot filesystem size in MiB | ||
4 | # OSTree updates may require some space on boot file system for | ||
5 | # boot scripts, kernel and initramfs images | ||
6 | # | ||
7 | calculate_size () { | ||
8 | BASE=$1 | ||
9 | SCALE=$2 | ||
10 | MIN=$3 | ||
11 | MAX=$4 | ||
12 | EXTRA=$5 | ||
13 | ALIGN=$6 | ||
14 | |||
15 | SIZE=`echo "$BASE * $SCALE" | bc -l` | ||
16 | REM=`echo $SIZE | cut -d "." -f 2` | ||
17 | SIZE=`echo $SIZE | cut -d "." -f 1` | ||
18 | |||
19 | if [ -n "$REM" -o ! "$REM" -eq 0 ]; then | ||
20 | SIZE=`expr $SIZE \+ 1` | ||
21 | fi | ||
22 | |||
23 | if [ "$SIZE" -lt "$MIN" ]; then | ||
24 | SIZE=$MIN | ||
25 | fi | ||
26 | |||
27 | SIZE=`expr $SIZE \+ $EXTRA` | ||
28 | SIZE=`expr $SIZE \+ $ALIGN \- 1` | ||
29 | SIZE=`expr $SIZE \- $SIZE \% $ALIGN` | ||
30 | |||
31 | if [ -n "$MAX" ]; then | ||
32 | if [ "$SIZE" -gt "$MAX" ]; then | ||
33 | return -1 | ||
34 | fi | ||
35 | fi | ||
36 | |||
37 | echo "${SIZE}" | ||
38 | } | ||
39 | |||
40 | OTA_SYSROOT = "${WORKDIR}/ota-sysroot" | 1 | OTA_SYSROOT = "${WORKDIR}/ota-sysroot" |
41 | TAR_IMAGE_ROOTFS_task-image-ota = "${OTA_SYSROOT}" | 2 | TAR_IMAGE_ROOTFS_task-image-ota = "${OTA_SYSROOT}" |
42 | IMAGE_TYPEDEP_ota = "ostreecommit" | 3 | IMAGE_TYPEDEP_ota = "ostreecommit" |
@@ -108,24 +69,13 @@ IMAGE_CMD_ota () { | |||
108 | echo "{\"${ostree_target_hash}\":\"${GARAGE_TARGET_NAME}-${target_version}\"}" > ${OTA_SYSROOT}/ostree/deploy/${OSTREE_OSNAME}/var/sota/import/installed_versions | 69 | echo "{\"${ostree_target_hash}\":\"${GARAGE_TARGET_NAME}-${target_version}\"}" > ${OTA_SYSROOT}/ostree/deploy/${OSTREE_OSNAME}/var/sota/import/installed_versions |
109 | } | 70 | } |
110 | 71 | ||
72 | EXTRA_IMAGECMD_ota-ext4 = "-O ^64bit -L otaroot -i 4096" | ||
111 | IMAGE_TYPEDEP_ota-ext4 = "ota" | 73 | IMAGE_TYPEDEP_ota-ext4 = "ota" |
112 | do_image_ota_ext4[depends] = "e2fsprogs-native:do_populate_sysroot" | 74 | IMAGE_ROOTFS_task-image-ota-ext4 = "${OTA_SYSROOT}" |
113 | IMAGE_CMD_ota-ext4 () { | 75 | IMAGE_CMD_ota-ext4 () { |
114 | # Calculate image size | 76 | ln -sf ${STAGING_DIR_NATIVE}${base_sbindir_native}/mkfs.ext4 ${STAGING_DIR_NATIVE}${base_sbindir_native}/mkfs.ota-ext4 |
115 | OTA_ROOTFS_SIZE=$(calculate_size `du -ks ${OTA_SYSROOT} | cut -f 1` "${IMAGE_OVERHEAD_FACTOR}" "${IMAGE_ROOTFS_SIZE}" "${IMAGE_ROOTFS_MAXSIZE}" `expr ${IMAGE_ROOTFS_EXTRA_SPACE}` "${IMAGE_ROOTFS_ALIGNMENT}") | 77 | ln -sf ${STAGING_DIR_NATIVE}${base_sbindir_native}/fsck.ext4 ${STAGING_DIR_NATIVE}${base_sbindir_native}/fsck.ota-ext4 |
116 | 78 | oe_mkext234fs ota-ext4 ${EXTRA_IMAGECMD} | |
117 | if [ ${OTA_ROOTFS_SIZE} -lt 0 ]; then | ||
118 | bbfatal "create_ota failed to calculate OTA rootfs size!" | ||
119 | fi | ||
120 | |||
121 | eval local COUNT=\"0\" | ||
122 | eval local MIN_COUNT=\"60\" | ||
123 | if [ ${OTA_ROOTFS_SIZE} -lt ${MIN_COUNT} ]; then | ||
124 | eval COUNT=\"${MIN_COUNT}\" | ||
125 | fi | ||
126 | |||
127 | dd if=/dev/zero of=${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.ota-ext4 seek=${OTA_ROOTFS_SIZE} count=${COUNT} bs=1024 | ||
128 | mkfs.ext4 -O ^64bit ${IMGDEPLOYDIR}/${IMAGE_NAME}${IMAGE_NAME_SUFFIX}.ota-ext4 -L otaroot -d ${OTA_SYSROOT} | ||
129 | } | 79 | } |
130 | 80 | do_image_ota_ext4[depends] = "e2fsprogs-native:do_populate_sysroot" | |
131 | do_image_wic[depends] += "${@bb.utils.contains('DISTRO_FEATURES', 'sota', '%s:do_image_ota_ext4' % d.getVar('PN'), '', d)}" | 81 | do_image_wic[depends] += "${@bb.utils.contains('DISTRO_FEATURES', 'sota', '%s:do_image_ota_ext4' % d.getVar('PN'), '', d)}" |