[OpenWrt-Devel] [PATCH 2/2] bcm53xx: sysupgrade: optimize building UBI image

Rafał Miłecki zajec5 at gmail.com
Thu Feb 20 07:40:55 EST 2020


From: Rafał Miłecki <rafal at milecki.pl>

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 at milecki.pl>
---
 target/linux/bcm53xx/base-files/lib/upgrade/platform.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh b/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh
index 1686462cde..40b2ef67be 100644
--- a/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/bcm53xx/base-files/lib/upgrade/platform.sh
@@ -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() {
-- 
2.25.0


_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list