summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-08-15 18:55:53 +0000
committerjuhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-08-15 18:55:53 +0000
commitf64a3c86106762363215bda1796ead6f1adcbea2 (patch)
treef68f0e6b9854e2987782dc5083e39c7fba9c21aa
parent649cff937e844618a848b2278467242388e624de (diff)
ramips: rt305x: fix mac addresses on the Netcore NW718 board
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28006 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rwxr-xr-xtarget/linux/ramips/base-files/etc/uci-defaults/nw71824
-rw-r--r--target/linux/ramips/base-files/lib/preinit/06_set_iface_mac33
2 files changed, 57 insertions, 0 deletions
diff --git a/target/linux/ramips/base-files/etc/uci-defaults/nw718 b/target/linux/ramips/base-files/etc/uci-defaults/nw718
index 986843ce7..4ce3bc9af 100755
--- a/target/linux/ramips/base-files/etc/uci-defaults/nw718
+++ b/target/linux/ramips/base-files/etc/uci-defaults/nw718
@@ -3,6 +3,29 @@
# Copyright (C) 2011 OpenWrt.org
#
+nw718_set_macs() {
+ local part
+ local lan_mac
+ local wan_mac
+
+ . /etc/functions.sh
+
+ part=$(find_mtd_part "factory")
+ [ -z $part ] && return
+
+ lan_mac=$(dd bs=1 skip=4 count=6 if=$part 2>/dev/null | hexdump -v -e '1/1 "%02x"' | sed 's/\(..\)/\1:/g;s/:$//')
+ [ -z $lan_mac ] && return
+
+ [ -z $(which maccalc) ] && return
+ wan_mac=$(maccalc add $lan_mac 1)
+
+ uci batch <<EOF
+set network.lan.macaddr='$lan_mac'
+set network.wan.macaddr='$wan_mac'
+commit network
+EOF
+}
+
nw718_set_leds() {
uci batch <<EOF
set system.usb_led=led
@@ -21,4 +44,5 @@ board=$(ramips_board_name)
if [ "${board}" == "nw718" ]; then
nw718_set_leds
+ nw718_set_macs
fi
diff --git a/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac b/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac
new file mode 100644
index 000000000..4be625bd1
--- /dev/null
+++ b/target/linux/ramips/base-files/lib/preinit/06_set_iface_mac
@@ -0,0 +1,33 @@
+#
+# Copyright (C) 2011 OpenWrt.org
+#
+
+nw718_set_mac() {
+ local part
+ local mac
+
+ [ -z $(which maccalc) ] && return
+
+ . /etc/functions.sh
+
+ part=$(find_mtd_part "factory")
+ [ -z $part ] && return
+
+ mac=$(dd bs=1 skip=4 count=6 if=$part 2>/dev/null | maccalc bin2mac)
+ [ -z $mac ] && return
+
+ mac=$(maccalc or "$mac" "02:00:00:00:00:00")
+ ifconfig eth0 hw ether $mac 2>/dev/null
+}
+
+preinit_set_mac_address() {
+ . /lib/ramips.sh
+
+ case $(ramips_board_name) in
+ nw718)
+ nw718_set_mac
+ ;;
+ esac
+}
+
+boot_hook_add preinit_main preinit_set_mac_address