summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnatoliy Odukha <aodukha@gmail.com>2020-12-21 13:00:11 +0200
committerGitHub <noreply@github.com>2020-12-21 13:00:11 +0200
commit8be7b8c571caf1a27e54267ba1f59db0d89a7b08 (patch)
tree4445d701c3c4ba312b7471b543f0a1d39587c227
parente5c4bc30147ac012476ba9aa36831a130dcf3180 (diff)
parent4d34fa53db086955adf6bc58941ebf98a16778f8 (diff)
downloadmeta-updater-8be7b8c571caf1a27e54267ba1f59db0d89a7b08.tar.gz
Merge pull request #787 from liuming50/refactor-ota-ext4-task
image_types_ota.bbclass: call oe_mkext234fs to make ota-ext4 image
-rw-r--r--classes/image_types_ota.bbclass62
1 files changed, 6 insertions, 56 deletions
diff --git a/classes/image_types_ota.bbclass b/classes/image_types_ota.bbclass
index 36a6a64..43fc611 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#
7calculate_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
40OTA_SYSROOT = "${WORKDIR}/ota-sysroot" 1OTA_SYSROOT = "${WORKDIR}/ota-sysroot"
41TAR_IMAGE_ROOTFS_task-image-ota = "${OTA_SYSROOT}" 2TAR_IMAGE_ROOTFS_task-image-ota = "${OTA_SYSROOT}"
42IMAGE_TYPEDEP_ota = "ostreecommit" 3IMAGE_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
72EXTRA_IMAGECMD_ota-ext4 = "-O ^64bit,^metadata_csum -L otaroot -i 4096"
111IMAGE_TYPEDEP_ota-ext4 = "ota" 73IMAGE_TYPEDEP_ota-ext4 = "ota"
112do_image_ota_ext4[depends] = "e2fsprogs-native:do_populate_sysroot" 74IMAGE_ROOTFS_task-image-ota-ext4 = "${OTA_SYSROOT}"
113IMAGE_CMD_ota-ext4 () { 75IMAGE_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 80do_image_ota_ext4[depends] = "e2fsprogs-native:do_populate_sysroot"
131do_image_wic[depends] += "${@bb.utils.contains('DISTRO_FEATURES', 'sota', '%s:do_image_ota_ext4' % d.getVar('PN'), '', d)}" 81do_image_wic[depends] += "${@bb.utils.contains('DISTRO_FEATURES', 'sota', '%s:do_image_ota_ext4' % d.getVar('PN'), '', d)}"