[source] scripts/ubinize-image.sh: add support for adding custom partitions

LEDE Commits lede-commits at lists.infradead.org
Wed Aug 31 04:05:22 PDT 2016


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

commit a84a74f618b0d3eadea622a45f62c9401c4f82ba
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Sun Jul 31 18:34:02 2016 +0200

    scripts/ubinize-image.sh: add support for adding custom partitions
    
    Signed-off-by: Felix Fietkau <nbd at nbd.name>
---
 include/image-commands.mk |  1 +
 include/image.mk          |  3 ++-
 scripts/ubinize-image.sh  | 27 ++++++++++++++++++++++++++-
 3 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/include/image-commands.mk b/include/image-commands.mk
index 00cb341..40a9619 100644
--- a/include/image-commands.mk
+++ b/include/image-commands.mk
@@ -114,6 +114,7 @@ define Build/append-ubi
 	sh $(TOPDIR)/scripts/ubinize-image.sh \
 		$(if $(UBOOTENV_IN_UBI),--uboot-env) \
 		$(if $(KERNEL_IN_UBI),--kernel $(IMAGE_KERNEL)) \
+		$(foreach part,$(UBINIZE_PARTS),--part $(part)) \
 		$(IMAGE_ROOTFS) \
 		$@.tmp \
 		-p $(BLOCKSIZE) -m $(PAGESIZE) \
diff --git a/include/image.mk b/include/image.mk
index c85a9d6..7079f18 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -347,6 +347,7 @@ define Device/Init
   SUBPAGESIZE :=
   VID_HDR_OFFSET :=
   UBINIZE_OPTS := -E 5
+  UBINIZE_PARTS :=
   MKUBIFS_OPTS :=
 
   FS_OPTIONS/ubifs = $$(MKUBIFS_OPTS)
@@ -365,7 +366,7 @@ DEFAULT_DEVICE_VARS := \
   DEVICE_DTS DEVICE_DTS_DIR BOARD_NAME CMDLINE \
   UBOOTENV_IN_UBI KERNEL_IN_UBI \
   BLOCKSIZE PAGESIZE SUBPAGESIZE VID_HDR_OFFSET \
-  UBINIZE_OPTS UIMAGE_NAME
+  UBINIZE_OPTS UIMAGE_NAME UBINIZE_PARTS
 
 define Device/ExportVar
   $(1) : $(2):=$$($(2))
diff --git a/scripts/ubinize-image.sh b/scripts/ubinize-image.sh
index b87cbb4..09a00b1 100755
--- a/scripts/ubinize-image.sh
+++ b/scripts/ubinize-image.sh
@@ -1,5 +1,6 @@
 #!/bin/sh
 
+part=""
 ubootenv=""
 ubinize_param=""
 kernel=""
@@ -22,6 +23,7 @@ ubivol() {
 	name=$2
 	image=$3
 	autoresize=$4
+	size="$5"
 	echo "[$name]"
 	echo "mode=ubi"
 	echo "vol_id=$volid"
@@ -29,6 +31,7 @@ ubivol() {
 	echo "vol_name=$name"
 	if [ "$image" ]; then
 		echo "image=$image"
+		[ -n "$size" ] && echo "vol_size=${size}MiB"
 	else
 		echo "vol_size=1MiB"
 	fi
@@ -46,6 +49,22 @@ ubilayout() {
 		ubivol $vol_id ubootenv2
 		vol_id=$(( $vol_id + 1 ))
 	fi
+	for part in $parts; do
+		name="${part%%=*}"
+		prev="$part"
+		part="${part#*=}"
+		[ "$prev" = "$part" ] && part=
+
+		image="${part%%=*}"
+		prev="$part"
+		part="${part#*=}"
+		[ "$prev" = "$part" ] && part=
+
+		size="$part"
+
+		ubivol $vol_id "$name" "$image" "" "$size"
+		vol_id=$(( $vol_id + 1 ))
+	done
 	if [ "$3" ]; then
 		ubivol $vol_id kernel "$3"
 		vol_id=$(( $vol_id + 1 ))
@@ -68,6 +87,12 @@ while [ "$1" ]; do
 		shift
 		continue
 		;;
+	"--part")
+		parts="$parts $2"
+		shift
+		shift
+		continue
+		;;
 	"-"*)
 		ubinize_param="$@"
 		break
@@ -88,7 +113,7 @@ while [ "$1" ]; do
 done
 
 if [ ! -r "$rootfs" -o ! -r "$kernel" -a ! "$outfile" ]; then
-	echo "syntax: $0 [--uboot-env] [--kernel kernelimage] rootfs out [ubinize opts]"
+	echo "syntax: $0 [--uboot-env] [--part <name>=<file>] [--kernel kernelimage] rootfs out [ubinize opts]"
 	exit 1
 fi
 



More information about the lede-commits mailing list