diff mbox series

[OpenWrt-Devel] ath79: improve mikrotik-caldata.sh

Message ID 20200318093526.45096-1-hacks@slashdirt.org
State Accepted
Headers show
Series [OpenWrt-Devel] ath79: improve mikrotik-caldata.sh | expand

Commit Message

Thibaut March 18, 2020, 9:35 a.m. UTC
Reduce unnecessary flash wear and be tidy:
- Run the extraction only if necessary
- Extract temporary file to /tmp
- cleanup after execution

Tested-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
---
 .../ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh  | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

Comments

Thibaut April 4, 2020, 9:51 a.m. UTC | #1
Hi,

Can someone tell me what (if anything) is wrong with this simple patch?

It only affects the ath79/mikrotik subtarget (so two devices to date) and does only three things:

1) run only if necessary (the check is arguably redundant with the one already performed in generic caldata.sh but I thought it couldn’t hurt to add it here in case the script is used independently)
2) use /tmp instead of flash to write the temporary file
3) remove the temporary file after use

Thanks,
Thibaut

> Le 18 mars 2020 à 10:35, Thibaut VARÈNE <hacks@slashdirt.org> a écrit :
> 
> Reduce unnecessary flash wear and be tidy:
> - Run the extraction only if necessary
> - Extract temporary file to /tmp
> - cleanup after execution
> 
> Tested-by: Roger Pueyo Centelles <roger.pueyo@guifi.net>
> Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
> ---
> .../ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh  | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh b/target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh
> index 9c4016ee5d..71a1bf02f3 100644
> --- a/target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh
> +++ b/target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh
> @@ -9,13 +9,18 @@ mikrotik_caldata_extract() {
> 	local offset=$(($2))
> 	local count=$(($3))
> 	local mtd
> -	local erdfile="/lib/firmware/erd.bin"
> +	local erdfile="/tmp/erd.bin"
> +	local fwfile="/lib/firmware/${FIRMWARE}"
> +
> +	[ -e $fwfile ] && exit 0
> 
> 	mtd=$(find_mtd_chardev $part)
> 	[ -n "$mtd" ] || caldata_die "no mtd device found for partition $part"
> 
> 	rbextract -e $mtd $erdfile
> 
> -	dd if=$erdfile of=/lib/firmware/$FIRMWARE iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \
> +	dd if=$erdfile of=$fwfile iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \
> 		caldata_die "failed to extract calibration data from $mtd"
> +
> +	rm -f $erdfile
> }
> -- 
> 2.11.0
>
Kevin 'ldir' Darbyshire-Bryant April 4, 2020, 10:18 a.m. UTC | #2
Merged into my staging tree.
Thank you!
diff mbox series

Patch

diff --git a/target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh b/target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh
index 9c4016ee5d..71a1bf02f3 100644
--- a/target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh
+++ b/target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh
@@ -9,13 +9,18 @@  mikrotik_caldata_extract() {
 	local offset=$(($2))
 	local count=$(($3))
 	local mtd
-	local erdfile="/lib/firmware/erd.bin"
+	local erdfile="/tmp/erd.bin"
+	local fwfile="/lib/firmware/${FIRMWARE}"
+
+	[ -e $fwfile ] && exit 0
 
 	mtd=$(find_mtd_chardev $part)
 	[ -n "$mtd" ] || caldata_die "no mtd device found for partition $part"
 
 	rbextract -e $mtd $erdfile
 
-	dd if=$erdfile of=/lib/firmware/$FIRMWARE iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \
+	dd if=$erdfile of=$fwfile iflag=skip_bytes bs=$count skip=$offset count=1 2>/dev/null || \
 		caldata_die "failed to extract calibration data from $mtd"
+
+	rm -f $erdfile
 }