Message ID | 20200318093526.45096-1-hacks@slashdirt.org |
---|---|
State | Accepted |
Headers | show |
Series | [OpenWrt-Devel] ath79: improve mikrotik-caldata.sh | expand |
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 >
Merged into my staging tree. Thank you!
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 }