summary |
shortlog |
log |
commit | commitdiff |
review |
tree
raw |
patch |
inline | side by side (from parent 1:
fa6ff08)
ROOTFS_SIZE is recomputed for each image type based on total size of
rootfs directory. If rootfs directory gets smaller between creation of
rootfs image and SD image, it fill result in corrupted SD image.
It should not happen in theory, but it happens occasionally for a reason
I could not identify.
Change-Id: I1c888c179fdcec32c3cacbbce7b2d34ec70bbb17
Signed-off-by: Anton Gerasimov <anton@advancedtelematic.com>
+ # Get rootfs size
+ if echo "${SDIMG_ROOTFS_TYPE}" | egrep -q "*\.xz"
+ then
+ ROOTPART_SIZE=`xz -l --robot ${SDIMG_ROOTFS} | grep "^file" | cut -f`
+ else
+ ROOTPART_SIZE=`du -Lb ${SDIMG_ROOTFS} | cut -f1`
+ fi
+
+ ROOTPART_SIZE=$(expr ${ROOTPART_SIZE} / 1024)
+
+ # just in case our file system block size is not a multiple of 1KiB
+ if [ $(expr ${ROOTPART_SIZE} % 1024) != 0 ];
+ then
+ ROOTPART_SIZE=$(expr ${ROOTPART_SIZE} + 1)
+ fi
+
# Align partitions
BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE} + ${IMAGE_ROOTFS_ALIGNMENT} - 1)
BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE_ALIGNED} - ${BOOT_SPACE_ALIGNED} % ${IMAGE_ROOTFS_ALIGNMENT})
# Align partitions
BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE} + ${IMAGE_ROOTFS_ALIGNMENT} - 1)
BOOT_SPACE_ALIGNED=$(expr ${BOOT_SPACE_ALIGNED} - ${BOOT_SPACE_ALIGNED} % ${IMAGE_ROOTFS_ALIGNMENT})
- SDIMG_SIZE=$(expr ${IMAGE_ROOTFS_ALIGNMENT} + ${BOOT_SPACE_ALIGNED} + $ROOTFS_SIZE)
+ SDIMG_SIZE=$(expr ${IMAGE_ROOTFS_ALIGNMENT} + ${BOOT_SPACE_ALIGNED} + $ROOTPART_SIZE)
- echo "Creating filesystem with Boot partition ${BOOT_SPACE_ALIGNED} KiB and RootFS $ROOTFS_SIZE KiB"
+ echo "Creating filesystem with Boot partition ${BOOT_SPACE_ALIGNED} KiB and RootFS $ROOTPART_SIZE KiB"
# Check if we are building with device tree support
DTS="${@get_dts(d, None)}"
# Check if we are building with device tree support
DTS="${@get_dts(d, None)}"