|
|
@@ -52,61 +52,17 @@ get_mac_nvram()
|
|
|
maccalc add "$mac_dirty" 0
|
|
|
}
|
|
|
|
|
|
-set_macs()
|
|
|
+set_interface_mac()
|
|
|
{
|
|
|
- local lan_mac="$1"
|
|
|
- local wan_mac="$2"
|
|
|
-
|
|
|
- echo "Setting LAN mac address to: $lan_mac" >&2
|
|
|
- echo "Setting WAN mac address to: $wan_mac" >&2
|
|
|
+ local iface="$1"
|
|
|
+ local mac="$2"
|
|
|
|
|
|
uci batch <<EOF
|
|
|
-set network.lan.macaddr='$lan_mac'
|
|
|
-set network.wan.macaddr='$wan_mac'
|
|
|
+set network.$iface.macaddr=""$mac"
|
|
|
commit network
|
|
|
EOF
|
|
|
}
|
|
|
|
|
|
-set_macs_only_lan()
|
|
|
-{
|
|
|
- local lan_mac="$1"
|
|
|
- local wan_mac
|
|
|
-
|
|
|
- wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
|
|
|
-
|
|
|
- set_macs "$lan_mac" "$wan_mac"
|
|
|
-}
|
|
|
-
|
|
|
-set_macs_only_lan_from_mtd()
|
|
|
-{
|
|
|
- local mtdname="$1"
|
|
|
- local seek="$2"
|
|
|
- local lan_mac
|
|
|
-
|
|
|
- lan_mac=$(get_mac_binary "$mtdname" "$seek")
|
|
|
- if [ -z $lan_mac ]; then
|
|
|
- echo "set_macs_only_lan_from_mtd: can't extract mac address from $part" >&2
|
|
|
- return
|
|
|
- fi
|
|
|
-
|
|
|
- set_macs_only_lan "$lan_mac"
|
|
|
-}
|
|
|
-
|
|
|
-set_macs_only_lan_from_nvram()
|
|
|
-{
|
|
|
- local mtdname="$1"
|
|
|
- local key="$2"
|
|
|
- local lan_mac
|
|
|
-
|
|
|
- lan_mac=$(get_mac_nvram "$mtdname" "$key")
|
|
|
- if [ -z $lan_mac ]; then
|
|
|
- echo "set_macs_only_lan_from_nvram: can't extract mac address from $part" >&2
|
|
|
- return
|
|
|
- fi
|
|
|
-
|
|
|
- set_macs_only_lan "$lan_mac"
|
|
|
-}
|
|
|
-
|
|
|
ramips_setup_interfaces()
|
|
|
{
|
|
|
local board="$1"
|
|
|
@@ -129,18 +85,25 @@ ramips_setup_interfaces()
|
|
|
ramips_setup_macs()
|
|
|
{
|
|
|
local board="$1"
|
|
|
+ local lan_mac=""
|
|
|
+ local wan_mac=""
|
|
|
|
|
|
case $board in
|
|
|
f5d8235-v2)
|
|
|
- set_macs_only_lan_from_mtd "u-boot" 262148
|
|
|
+ lan_mac=$(get_mac_nvram "u-boot" 262148)
|
|
|
+ wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
|
|
|
;;
|
|
|
|
|
|
argus-atp52b | \
|
|
|
b2c | \
|
|
|
nw718)
|
|
|
- set_macs_only_lan_from_mtd "factory" 4
|
|
|
+ lan_mac=$(get_mac_binary factory 4)
|
|
|
+ wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
|
|
|
;;
|
|
|
esac
|
|
|
+
|
|
|
+ [ -n $lan_mac ] && set_interface_mac lan $lan_mac
|
|
|
+ [ -n $wan_mac ] && set_interface_mac wan $wan_mac
|
|
|
}
|
|
|
|
|
|
board=$(ramips_board_name)
|