diff options
author | Mathias Kresin <dev@kresin.me> | 2018-08-11 10:10:21 +0200 |
---|---|---|
committer | Mathias Kresin <dev@kresin.me> | 2018-08-11 21:36:27 +0200 |
commit | dfee452713e6b3c10aafc6174f8087a920b54402 (patch) | |
tree | 2bc1ca25e2331f4cc144648e8c53fbca16732bd0 /package/base-files/files/lib/functions/system.sh | |
parent | ec28d2797c1bff4a3a97e54fee648cc56185839a (diff) | |
download | upstream-dfee452713e6b3c10aafc6174f8087a920b54402.tar.gz upstream-dfee452713e6b3c10aafc6174f8087a920b54402.tar.bz2 upstream-dfee452713e6b3c10aafc6174f8087a920b54402.zip |
base-files: add function to get mac as text from flash
Add a function to get a mac stored as text from flash. The octets of
the mac address need to be separated by any separator supported by
macaddr_canonicalize().
Signed-off-by: Dmitry Tunin <hanipouspilot@gmail.com>
Signed-off-by: Mathias Kresin <dev@kresin.me>
Diffstat (limited to 'package/base-files/files/lib/functions/system.sh')
-rw-r--r-- | package/base-files/files/lib/functions/system.sh | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/package/base-files/files/lib/functions/system.sh b/package/base-files/files/lib/functions/system.sh index e178f26f39..7ed62804a0 100644 --- a/package/base-files/files/lib/functions/system.sh +++ b/package/base-files/files/lib/functions/system.sh @@ -38,6 +38,29 @@ mtd_get_mac_ascii() { [ -n "$mac_dirty" ] && macaddr_canonicalize "$mac_dirty" } +mtd_get_mac_text() { + local mtdname=$1 + local offset=$2 + local part + local mac_dirty + + part=$(find_mtd_part "$mtdname") + if [ -z "$part" ]; then + echo "mtd_get_mac_text: partition $mtdname not found!" >&2 + return + fi + + if [ -z "$offset" ]; then + echo "mtd_get_mac_text: offset missing!" >&2 + return + fi + + mac_dirty=$(dd if="$part" bs=1 skip="$offset" count=17 2>/dev/null) + + # "canonicalize" mac + [ -n "$mac_dirty" ] && macaddr_canonicalize "$mac_dirty" +} + mtd_get_mac_binary() { local mtdname="$1" local offset="$2" |