diff --git a/target/linux/mvebu/image/Makefile b/target/linux/mvebu/image/Makefile index 09f075bbdb..f3eda17a0b 100644 --- a/target/linux/mvebu/image/Makefile +++ b/target/linux/mvebu/image/Makefile @@ -34,7 +34,6 @@ endef # MBR: 2048 sectors # Partition 1: 32768 sectors # Partition 2: 98304 sectors (configurable) -# Partition 3: 7611392 sectors (configurable, depends on p2 size) define Build/boot-scr rm -f $@.bootscript @@ -50,16 +49,11 @@ define Build/boot-img endef define Build/sdcard-img - rm -rf $@ $@.rootfsdata $@.tmp - mkdir -p $@.tmp ROOTFS_SIZE=$$(( $(CONFIG_TARGET_ROOTFS_PARTSIZE) * 1024 * 2 )); \ - DATA_SIZE=$$(( 7709696 - ($(CONFIG_TARGET_ROOTFS_PARTSIZE) * 1024 * 2) )); \ - make_ext4fs -J -l $$DATA_SIZE $@.rootfsdata $@.tmp && \ - ./gen_mvebu_sdcard_img.sh 7744512 $@ \ + ./gen_mvebu_sdcard_img.sh $@ \ "$(BIN_DIR)/uboot-mvebu-clearfog/openwrt-mvebu-clearfog-u-boot-spl.kwb" \ c 32768 $@.boot \ - 83 $$ROOTFS_SIZE $(IMAGE_ROOTFS) \ - 83 $$DATA_SIZE $@.rootfsdata + 83 $$ROOTFS_SIZE $(IMAGE_ROOTFS) endef define Device/Default @@ -182,7 +176,7 @@ define Device/armada-388-clearfog KERNEL_INSTALL := 1 KERNEL := dtb | kernel-bin DEVICE_TITLE := SolidRun ClearFog - DEVICE_PACKAGES := uboot-mvebu-clearfog + DEVICE_PACKAGES := uboot-mvebu-clearfog mkf2fs e2fsprogs IMAGES := bundle.tar.gz sdcard.img.gz IMAGE/bundle.tar.gz := clearfog-bundle IMAGE/sdcard.img.gz := boot-scr | boot-img | sdcard-img | gzip diff --git a/target/linux/mvebu/image/gen_mvebu_sdcard_img.sh b/target/linux/mvebu/image/gen_mvebu_sdcard_img.sh index 1d874df95d..86499eea57 100755 --- a/target/linux/mvebu/image/gen_mvebu_sdcard_img.sh +++ b/target/linux/mvebu/image/gen_mvebu_sdcard_img.sh @@ -18,12 +18,12 @@ # usage() { - echo "$0 [ ]?" + echo "$0 [ ]?" } # always require first 3 arguments # then in pairs up to 8 more for a total of up to 4 partitions -if [ $# -lt 3 ] || [ $# -gt 15 ] || [ $(($#%3)) -ne 0 ]; then +if [ $# -lt 2 ] || [ $# -gt 15 ] || [ $((($# - 2) % 3)) -ne 0 ]; then usage exit 1 fi @@ -31,7 +31,6 @@ fi set -e # parameters -IMGSIZE=$1; shift OUTFILE="$1"; shift BOOTLOADER="$1"; shift @@ -41,7 +40,7 @@ dd if=/dev/zero of="$OUTFILE" bs=512 count=1 >/dev/null printf "Done\n" while [ "$#" -ge 3 ]; do - ptgen_args="$ptgen_args -p $(($2 / 2)) -S 0x$1" + ptgen_args="$ptgen_args -p $(($2 / 2 + 256)) -S 0x$1" parts="$parts$3 " shift; shift; shift done @@ -65,7 +64,11 @@ while [ "$#" -ge 2 ]; do parts="${parts#* }" printf "Writing %s to partition %i: " "$img" $i - dd if="$img" of="$OUTFILE" bs=512 seek=$(($1 / 512)) conv=notrunc 2>/dev/null + ( + cat "$img" + # add padding to avoid leaving behind old overlay fs data + dd if=/dev/zero bs=128k count=1 2>/dev/null + ) | dd of="$OUTFILE" bs=512 seek=$(($1 / 512)) conv=notrunc 2>/dev/null printf "Done\n" let i=i+1 diff --git a/target/linux/mvebu/profiles/000-Default.mk b/target/linux/mvebu/profiles/000-Default.mk index 5a03fe9bb4..417007facf 100644 --- a/target/linux/mvebu/profiles/000-Default.mk +++ b/target/linux/mvebu/profiles/000-Default.mk @@ -7,7 +7,7 @@ define Profile/Default NAME:=Default Profile (all drivers) - PACKAGES:= kmod-mwlwifi wpad-mini swconfig uboot-mvebu-clearfog + PACKAGES:= kmod-mwlwifi wpad-mini swconfig uboot-mvebu-clearfog mkf2fs e2fsprogs endef define Profile/Default/Description