aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ath79/mikrotik/base-files/lib/functions/mikrotik-caldata.sh
blob: 71a1bf02f330a03ee3c6ee067ebb7442f4a20e43 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# Copyright (C) 2019 Robert Marko <robimarko@gmail.com>
# Copyright (C) 2019 Roger Pueyo Centelles <roger.pueyo@guifi.net>
#
# Helper function to extract MAC addresses and calibration data for MikroTik
#

mikrotik_caldata_extract() {
	local part=$1
	local offset=$(($2))
	local count=$(($3))
	local mtd
	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=$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
}