ソースを参照

ramips: rt305x: fix mac addresses on the Netcore NW718 board

SVN-Revision: 28006
Gabor Juhos 14 年 前
コミット
bfc47ffead

+ 24 - 0
target/linux/ramips/base-files/etc/uci-defaults/nw718

@@ -3,6 +3,29 @@
 # Copyright (C) 2011 OpenWrt.org
 # 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() {
 nw718_set_leds() {
 	uci batch <<EOF
 	uci batch <<EOF
 set system.usb_led=led
 set system.usb_led=led
@@ -21,4 +44,5 @@ board=$(ramips_board_name)
 
 
 if [ "${board}" == "nw718" ]; then
 if [ "${board}" == "nw718" ]; then
 	nw718_set_leds
 	nw718_set_leds
+	nw718_set_macs
 fi
 fi

+ 33 - 0
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