aboutsummaryrefslogtreecommitdiffstats
path: root/package/base-files
diff options
context:
space:
mode:
authorBrian Norris <computersforpeace@gmail.com>2022-03-12 22:04:30 -0800
committerChristian Lamparter <chunkeey@gmail.com>2022-03-16 17:50:06 +0100
commite8a0c55909427703b7c72ed46326531397287b20 (patch)
tree10ba5fbd1bfb9d61c368739b4bc1f208d906ba3a /package/base-files
parente17c6ee62770005e398364ee5d955c9a8ab6f016 (diff)
downloadupstream-e8a0c55909427703b7c72ed46326531397287b20.tar.gz
upstream-e8a0c55909427703b7c72ed46326531397287b20.tar.bz2
upstream-e8a0c55909427703b7c72ed46326531397287b20.zip
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 <chunkeey@gmail.com> Signed-off-by: Brian Norris <computersforpeace@gmail.com> (move spaces around, mention fstools' libtoolfs) Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
Diffstat (limited to 'package/base-files')
-rw-r--r--package/base-files/files/lib/upgrade/emmc.sh5
1 files changed, 4 insertions, 1 deletions
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