add script to fixup the wireless mac (#7102)
authorJo-Philipp Wich <jow@openwrt.org>
Sat, 10 Apr 2010 14:29:01 +0000 (14:29 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Sat, 10 Apr 2010 14:29:01 +0000 (14:29 +0000)
SVN-Revision: 20775

target/linux/brcm-2.4/base-files/etc/init.d/wmacfixup [new file with mode: 0755]

diff --git a/target/linux/brcm-2.4/base-files/etc/init.d/wmacfixup b/target/linux/brcm-2.4/base-files/etc/init.d/wmacfixup
new file mode 100755 (executable)
index 0000000..ee1b752
--- /dev/null
@@ -0,0 +1,33 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2010 OpenWrt.org
+
+START=41
+
+boot() {
+       [ -d /sys/class/ieee80211 ] || exit
+
+       commit=0
+
+       fixup_wmac() {
+               local cfg="$1"
+               local cfmac
+
+               config_get cfmac "$cfg" macaddr
+
+               [ "$cfmac" != "00:90:4c:5f:00:2a" ] || {
+                       local nvmac="$(nvram get il0macaddr 2>/dev/null)"
+                       [ -n "$nvmac" ] && [ "$nvmac != "$cfmac ] && {
+                               uci set wireless.$cfg.macaddr="$nvmac"
+                               commit=1
+                       }
+               }
+       }
+
+       config_load wireless
+       config_foreach fixup_wmac wifi-device
+
+       [ "$commit" = 1 ] && uci commit wireless
+}
+
+start() { :; }
+stop()  { :; }