bcm53xx: sysupgrade: optimize building UBI image

Use "truncate" to adjust size of existing file instead of "dd" which
required creating a copy. This saves space on tmpfs. It may be as low
as 2.1 MiB when using OpenWrt default user space and way more (20+ MiB)
when flashing vendor firmware.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
(cherry picked from commit 8abefc8896)
This commit is contained in:
Rafał Miłecki 2020-02-20 13:40:55 +01:00
parent 55c29c398c
commit 35413b047c

View File

@ -1,4 +1,4 @@
RAMFS_COPY_BIN='osafeloader oseama otrx'
RAMFS_COPY_BIN='osafeloader oseama otrx truncate'
PART_NAME=firmware
@ -281,7 +281,7 @@ platform_do_upgrade_nand_trx() {
while [ "$(dd if=$dir/root skip=$ubi_length bs=1 count=4 2>/dev/null)" = "UBI#" ]; do
ubi_length=$(($ubi_length + 131072))
done
dd if=$dir/root of=/tmp/root.ubi bs=131072 count=$((ubi_length / 131072)) 2>/dev/null
truncate -s $ubi_length $dir/root
[ $? -ne 0 ] && {
echo "Failed to prepare new UBI image."
return
@ -289,7 +289,7 @@ platform_do_upgrade_nand_trx() {
# Flash
mtd write /tmp/kernel.trx firmware || exit 1
nand_do_upgrade /tmp/root.ubi
nand_do_upgrade $dir/root
}
platform_do_upgrade_nand_seama() {