1234567891011121314151617181920212223242526272829 |
- From: Matthias Schiffer <mschiffer@universe-factory.net>
- Date: Thu, 4 May 2017 07:29:58 +0200
- Subject: sunxi: sysupgrade: don't write partitions twice
- When existing partitions are retained, the dd call writing the uboot image
- in the space before the first partition was accidentally writing the whole
- image, making the code for individual partitions redundant. Limit the copy
- to 1016KiB (the first 8KiB are skipped, and the first partition starts at
- 1024KiB).
- In addition, conv=notrunc is replaced with conv=fsync. It seems this was an
- oversight, as notrunc doesn't make sense for block devices and all other dd
- commands use conv=fsync.
- Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
- diff --git a/target/linux/sunxi/base-files/lib/upgrade/platform.sh b/target/linux/sunxi/base-files/lib/upgrade/platform.sh
- index f2cd970d428a780d7497d8802765c656a47ff421..776bdf53bf89c5eafc24b7b59b943e12f3fab77e 100644
- --- a/target/linux/sunxi/base-files/lib/upgrade/platform.sh
- +++ b/target/linux/sunxi/base-files/lib/upgrade/platform.sh
- @@ -43,7 +43,7 @@ platform_do_upgrade() {
- fi
-
- #write uboot image
- - get_image "$@" | dd of="$diskdev" bs=1024 skip=8 seek=8 conv=notrunc
- + get_image "$@" | dd of="$diskdev" bs=1024 skip=8 seek=8 count=1016 conv=fsync
- #iterate over each partition from the image and write it to the boot disk
- while read part start size; do
- part="$(($part - 2))"
|