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:
parent
817e132332
commit
fdac4c085d
@ -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
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user