aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThibaut VARÈNE <hacks@slashdirt.org>2020-03-18 10:35:26 +0100
committerKevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>2020-04-04 11:18:58 +0100
commitfdac4c085daccd774b4eba6b8c3fca2739cbb8dd (patch)
tree9c795faf1817ae4737d2aa76a5ac96f97f0c392e
parent817e1323322c9d58464330a15994e8693b48b9c5 (diff)
downloadupstream-fdac4c085daccd774b4eba6b8c3fca2739cbb8dd.tar.gz
upstream-fdac4c085daccd774b4eba6b8c3fca2739cbb8dd.tar.bz2
upstream-fdac4c085daccd774b4eba6b8c3fca2739cbb8dd.zip
ath79: improve mikrotik-caldata.sh
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>
-rw-r--r--target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh9
1 files 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
}