ath79: improve mikrotik-caldata.sh
authorThibaut VARÈNE <hacks@slashdirt.org>
Wed, 18 Mar 2020 09:35:26 +0000 (10:35 +0100)
committerKevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
Sat, 4 Apr 2020 10:18:58 +0000 (11:18 +0100)
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>
target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh

index 9c4016ee5d556176ec60a98667ec300649a8318d..71a1bf02f330a03ee3c6ee067ebb7442f4a20e43 100644 (file)
@@ -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
 }