scripts/ubinize-image.sh: add support for adding custom partitions
Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
f29774bee3
commit
a84a74f618
3 changed files with 29 additions and 2 deletions
|
@ -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) \
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in a new issue