aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
diff options
context:
space:
mode:
authorThibaut VARÈNE <hacks@slashdirt.org>2020-04-19 12:09:20 +0200
committerKoen Vandeputte <koen.vandeputte@ncentric.com>2020-05-08 15:17:17 +0200
commit301bc3290df394bd39373ffc081818b56092b05f (patch)
tree64cc3a6d8071d2c664b9f1774b8ac3c7752f97da /target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
parent31e99fe3daea9c402571c0bfa42e5d0d17d06809 (diff)
downloadupstream-301bc3290df394bd39373ffc081818b56092b05f.tar.gz
upstream-301bc3290df394bd39373ffc081818b56092b05f.tar.bz2
upstream-301bc3290df394bd39373ffc081818b56092b05f.zip
ath79/mikrotik: don't use mtd-mac-address in DTS
As evidenced here[1] the device MAC address can be stored at a random offset in the hard_config partition. Rely on sysfs to update the MAC address correctly. To match sticker and vendor OS behavior, WAN MAC is set to the device base MAC and LAN MAC is incremented from that. Note: this will trigger a harmless kernel message during boot: ag71xx 19000000.eth: invalid MAC address, using random address There is no clean workaround to prevent this message from being emitted. [1] https://github.com/openwrt/openwrt/pull/2850#issuecomment-610809021 Signed-off-by: Thibaut VARÈNE <hacks@slashdirt.org>
Diffstat (limited to 'target/linux/ath79/mikrotik/base-files/etc/board.d/02_network')
-rwxr-xr-xtarget/linux/ath79/mikrotik/base-files/etc/board.d/02_network9
1 files changed, 9 insertions, 0 deletions
diff --git a/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network b/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
index ee795c7496..7f8327f764 100755
--- a/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/mikrotik/base-files/etc/board.d/02_network
@@ -21,8 +21,17 @@ ath79_setup_interfaces()
ath79_setup_macs()
{
local board="$1"
+ local lan_mac=""
+ local wan_mac=""
+ local label_mac=""
+ local mac_base="$(cat /sys/firmware/mikrotik/hard_config/mac_base)"
case "$board" in
+ *)
+ label_mac="$mac_base"
+ wan_mac="$mac_base"
+ lan_mac=$(macaddr_add $mac_base 1)
+ ;;
esac
[ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac