From: Brian Norris Date: Sun, 13 Mar 2022 06:04:30 +0000 (-0800) Subject: base-files: Align rootfs_data upgrades to 64KiB on eMMC X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=e8a0c55909427703b7c72ed46326531397287b20;p=openwrt%2Fstaging%2Fchunkeey.git base-files: Align rootfs_data upgrades to 64KiB on eMMC Rootfs overlays get created at a ROOTDEV_OVERLAY_ALIGN (64KiB) alignment after the rootfs, but emmc_do_upgrade() is assuming it comes at the very next 512-byte sector. Suggested-by: Christian Lamparter Signed-off-by: Brian Norris (move spaces around, mention fstools' libtoolfs) Signed-off-by: Christian Lamparter --- diff --git a/package/base-files/files/lib/upgrade/emmc.sh b/package/base-files/files/lib/upgrade/emmc.sh index 15fa370cd9..c3b02864aa 100644 --- a/package/base-files/files/lib/upgrade/emmc.sh +++ b/package/base-files/files/lib/upgrade/emmc.sh @@ -19,8 +19,11 @@ emmc_upgrade_tar() { [ "$has_kernel" = 1 -a "$EMMC_KERN_DEV" ] && export EMMC_KERNEL_BLOCKS=$(($(tar xf "$tar_file" ${board_dir}/kernel -O | dd of="$EMMC_KERN_DEV" bs=512 2>&1 | grep "records out" | cut -d' ' -f1))) - [ "$has_rootfs" = 1 -a "$EMMC_ROOT_DEV" ] && + [ "$has_rootfs" = 1 -a "$EMMC_ROOT_DEV" ] && { export EMMC_ROOTFS_BLOCKS=$(($(tar xf "$tar_file" ${board_dir}/root -O | dd of="$EMMC_ROOT_DEV" bs=512 2>&1 | grep "records out" | cut -d' ' -f1))) + # Account for 64KiB ROOTDEV_OVERLAY_ALIGN in libfstools + EMMC_ROOTFS_BLOCKS=$(((EMMC_ROOTFS_BLOCKS + 127) & ~127)) + } if [ -z "$UPGRADE_BACKUP" ]; then if [ "$EMMC_DATA_DEV" ]; then