diff options
author | Daniel Golle <daniel@makrotopia.org> | 2024-02-01 05:03:56 +0000 |
---|---|---|
committer | Daniel Golle <daniel@makrotopia.org> | 2024-02-15 19:30:08 +0000 |
commit | 6c17d719734c223e7e33e0a890b33610da54a0ae (patch) | |
tree | 474f4980f6e056d6e1c48a7c5ef3bf994d22bcf6 /scripts | |
parent | ada3b2190a86fe329d0e45b6a03dbd37e3911611 (diff) | |
download | openwrt-6c17d719734c223e7e33e0a890b33610da54a0ae.tar.gz openwrt-6c17d719734c223e7e33e0a890b33610da54a0ae.tar.bz2 openwrt-6c17d719734c223e7e33e0a890b33610da54a0ae.zip |
scripts: ubinize-image.sh: support static volumes, make size optional
In order to support devices having TF-A FIP image or UBI-aware U-Boot
SPL we need to include a static volume for the bootloader.
Introduce support for adding additional static volumes by prefixing
the filename with ':', eg.
UBINIZE_PARTS := fip:=$(STAGING_DIR_IMAGE)/u-boot.fip
Also add support for rootfs-in-uImage.FIT setups which don't require a
rootfs partition and make the (3rd) size parameter in UBINIZE_PARTS
optional (see example above without declared size).
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/ubinize-image.sh | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/scripts/ubinize-image.sh b/scripts/ubinize-image.sh index 323eae547a..cd516e8afc 100755 --- a/scripts/ubinize-image.sh +++ b/scripts/ubinize-image.sh @@ -12,15 +12,16 @@ err="" ubinize_seq="" ubivol() { - volid=$1 - name=$2 - image=$3 - autoresize=$4 - size="$5" + local volid=$1 + local name=$2 + local image=$3 + local autoresize=$4 + local size="$5" + local voltype="${6:-dynamic}" echo "[$name]" echo "mode=ubi" echo "vol_id=$volid" - echo "vol_type=dynamic" + echo "vol_type=$voltype" echo "vol_name=$name" if [ "$image" ]; then echo "image=$image" @@ -38,6 +39,7 @@ ubilayout() { local rootsize= local autoresize= local rootfs_type="$( get_fs_type "$2" )" + local voltype if [ "$1" = "ubootenv" ]; then ubivol $vol_id ubootenv @@ -49,16 +51,26 @@ ubilayout() { name="${part%%=*}" prev="$part" part="${part#*=}" + voltype=dynamic [ "$prev" = "$part" ] && part= image="${part%%=*}" + if [ "${image:0:1}" = ":" ]; then + voltype=static + image="${image:1}" + fi prev="$part" part="${part#*=}" [ "$prev" = "$part" ] && part= size="$part" + if [ -z "$size" ]; then + size="$( round_up "$( stat -c%s "$image" )" 1024 )" + else + size="${size}MiB" + fi - ubivol $vol_id "$name" "$image" "" "${size}MiB" + ubivol $vol_id "$name" "$image" "" "${size}" "$voltype" vol_id=$(( $vol_id + 1 )) done if [ "$3" ]; then @@ -77,10 +89,10 @@ ubilayout() { rootsize="$( round_up "$( stat -c%s "$2" )" 1024 )" ;; esac - ubivol $vol_id rootfs "$2" "$autoresize" "$rootsize" + ubivol $vol_id rootfs "$2" "$autoresize" "$rootsize" dynamic vol_id=$(( $vol_id + 1 )) - [ "$rootfs_type" = "ubifs" ] || ubivol $vol_id rootfs_data "" 1 + [ "$rootfs_type" = "ubifs" ] || ubivol $vol_id rootfs_data "" 1 dymamic fi } |