[source] mvebu: use ext4/f2fs overlay filesystem for solidrun clearfog

LEDE Commits lede-commits at lists.infradead.org
Sat Sep 10 03:18:07 PDT 2016


nbd pushed a commit to source.git, branch master:
https://git.lede-project.org/3cbb7820a41057ef3be7b80f35d812fd8b03c9be

commit 3cbb7820a41057ef3be7b80f35d812fd8b03c9be
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Thu Sep 8 14:19:34 2016 +0200

    mvebu: use ext4/f2fs overlay filesystem for solidrun clearfog
    
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
---
 target/linux/mvebu/image/Makefile                | 12 +++---------
 target/linux/mvebu/image/gen_mvebu_sdcard_img.sh | 13 ++++++++-----
 target/linux/mvebu/profiles/000-Default.mk       |  2 +-
 3 files changed, 12 insertions(+), 15 deletions(-)

diff --git a/target/linux/mvebu/image/Makefile b/target/linux/mvebu/image/Makefile
index 09f075b..f3eda17 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 1d874df..86499ee 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 <sectors> <outfile> <bootloader> [<type_partitionN> <sectors_partitionN> <img_partitionN>]?"
+	echo "$0 <outfile> <bootloader> [<type_partitionN> <sectors_partitionN> <img_partitionN>]?"
 }
 
 # 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 5a03fe9..417007f 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



More information about the lede-commits mailing list