. /etc/functions.sh
. /lib/ramips.sh
+. /lib/functions/uci-defaults.sh
if [ ! -x /usr/sbin/maccalc ]; then
echo "$0: maccalc not found!"
return
fi
-create_lan_wan()
-{
- uci batch <<EOF
-set network.lan.ifname=eth0.1
-set network.wan=interface
-set network.wan.ifname=eth0.2
-set network.wan.proto=dhcp
-commit network
-EOF
-}
-
-get_mac_binary()
+ramips_get_mac_binary()
{
local mtdname="$1"
local seek="$2"
part=$(find_mtd_part "$mtdname")
if [ -z "$part" ]; then
- echo "get_mac_binary: partition $mtdname not found!" >&2
+ echo "ramips_get_mac_binary: partition $mtdname not found!" >&2
return
fi
dd bs=1 skip=$seek count=6 if=$part 2>/dev/null | /usr/sbin/maccalc bin2mac
}
-get_mac_nvram()
+ramips_get_mac_nvram()
{
local mtdname="$1"
local key="$2"
part=$(find_mtd_part "$mtdname")
if [ -z "$part" ]; then
- echo "get_mac_nvram: partition $mtdname not found!" >&2
+ echo "ramips_get_mac_nvram: partition $mtdname not found!" >&2
return
fi
maccalc add "$mac_dirty" 0
}
-set_macs()
-{
- 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
-
- uci batch <<EOF
-set network.lan.macaddr='$lan_mac'
-set network.wan.macaddr='$wan_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"
+ ucidef_set_interface_loopback
+
case $board in
argus-atp52b | \
b2c | \
f5d8235-v2 | \
nw718)
- create_lan_wan
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ;;
+
+ rt-n15)
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ucidef_add_switch "rtl8366s" "1" "1"
+ ucidef_add_switch_vlan "rtl8366s" "1" "1 2 3 4 5t"
+ ucidef_add_switch_vlan "rtl8366s" "2" "0 5t"
;;
*)
RT3X5X=`cat /proc/cpuinfo | grep RT3.5`
- [ -z "${RT3X5X}" ] || create_lan_wan
+ if [ -n "${RT3X5X}" ]; then
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ else
+ ucidef_set_interfaces_lan_wan "eth0" "eth1"
+ fi
;;
esac
}
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=$(ramips_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
+ nw718 | \
+ rt-n15)
+ lan_mac=$(ramips_get_mac_binary factory 4)
+ wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
;;
esac
+
+ [ -n $lan_mac ] && ucidef_set_interface_macaddr lan $lan_mac
+ [ -n $wan_mac ] && ucidef_set_interface_macaddr wan $wan_mac
}
+[ -e /etc/config/network ] && exit 0
+
+touch /etc/config/network
+
board=$(ramips_board_name)
ramips_setup_interfaces $board
ramips_setup_macs $board
+
+uci commit network
+
+exit 0