gemini: Fix MAC address assignment for DIR-685

The DIR-685 has the MAC addresses in the RedBoot code just like
DNS-313. Check some magic numbers to determine that the MAC
address is where we want it and extract it from RedBoot.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
[replaced ifconfig with ip, ! -z = -n, added string quotes]

(cherry picked from commit 86098ea87e)
openwrt-19.07
Linus Walleij 2019-06-11 23:06:55 +02:00 committed by Jo-Philipp Wich
parent b790e346b9
commit 0b1f62a277
1 changed files with 15 additions and 0 deletions

View File

@ -23,6 +23,21 @@ set_ether_mac() {
fi
fi
;;
dlink,dir-685)
# The DIR-685 has a special field in its RedBoot
# binary that we need to check
part=$(find_mtd_part RedBoot)
if [ -n "$part" ] ; then
DEVID="$(dd if=$part bs=1 skip=81516 count=7 2>/dev/null)"
if [ "$DEVID" = "ILI9322" ] ; then
MAC1=$(mtd_get_mac_binary RedBoot 95040)
MAC2=$(mtd_get_mac_binary RedBoot 95046)
ip link set eth0 address "$MAC1" 2>/dev/null
ip link set eth1 address "$MAC2" 2>/dev/null
return 0
fi
fi
;;
esac
# Most devices have a standard "VCTL" partition