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>
This commit is contained in:
Thibaut VARÈNE 2020-03-18 10:35:26 +01:00 committed by Kevin Darbyshire-Bryant
parent 817e132332
commit fdac4c085d

View File

@ -9,13 +9,18 @@ mikrotik_caldata_extract() {
local offset=$(($2)) local offset=$(($2))
local count=$(($3)) local count=$(($3))
local mtd 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) mtd=$(find_mtd_chardev $part)
[ -n "$mtd" ] || caldata_die "no mtd device found for partition $part" [ -n "$mtd" ] || caldata_die "no mtd device found for partition $part"
rbextract -e $mtd $erdfile 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" caldata_die "failed to extract calibration data from $mtd"
rm -f $erdfile
} }