. /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()
-{
- local mtdname="$1"
- local seek="$2"
- local part
-
- part=$(find_mtd_part "$mtdname")
- if [ -z "$part" ]; then
- echo "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()
-{
- local mtdname="$1"
- local key="$2"
- local part
- local mac_dirty
-
- part=$(find_mtd_part "$mtdname")
- if [ -z "$part" ]; then
- echo "get_mac_nvram: partition $mtdname not found!" >&2
- return
- fi
-
- mac_dirty=$(strings "$part" | sed -n 's/'"$key"'=//p')
- # "canonicalize" mac
- maccalc add "$mac_dirty" 0
-}
-
-set_interface_mac()
-{
- local iface="$1"
- local mac="$2"
-
- uci batch <<EOF
-set network.$iface.macaddr=""$mac"
-commit network
-EOF
-}
-
ramips_setup_interfaces()
{
local board="$1"
+ ucidef_set_interface_loopback
+
case $board in
+ all0256n)
+ ucidef_set_interface_lan "eth0.1"
+ ;;
+
argus-atp52b | \
b2c | \
+ nw718 | \
+ w502u)
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ;;
+
+ f5d8235-v1 | \
+ 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"
+ ;;
+
f5d8235-v2 | \
- nw718)
- create_lan_wan
+ wl-351)
+ ucidef_set_interfaces_lan_wan "eth0.1" "eth0.2"
+ ucidef_add_switch "rtl8366rb" "1" "1"
+ ucidef_add_switch_vlan "rtl8366rb" "1" "0 1 2 3 5t"
+ ucidef_add_switch_vlan "rtl8366rb" "2" "4 5t"
+ ;;
+
+ wcr-150gn)
+ ucidef_set_interface_lan_wan "eth0.2" "eth0.1"
+ ;;
+
+ wli-tx4-ag300n)
+ ucidef_set_interface_lan "eth0"
;;
*)
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
}
local wan_mac=""
case $board in
- f5d8235-v2)
- lan_mac=$(get_mac_nvram "u-boot" 262148)
- wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
+ all0256n)
+ lan_mac=$(ramips_get_mac_binary factory 40)
;;
argus-atp52b | \
b2c | \
- nw718)
- lan_mac=$(get_mac_binary factory 4)
+ f5d8235-v1 | \
+ nw718 | \
+ rt-n15 | \
+ wl-351)
+ lan_mac=$(ramips_get_mac_binary factory 4)
wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
;;
+
+ dir-300-b1 |\
+ dir-300-b2 |\
+ dir-600-b1)
+ lan_mac=$(ramips_get_mac_binary devdata 16388)
+ wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
+ ;;
+
+ esr-9753 | \
+ nbg-419n)
+ lan_mac=$(ramips_get_mac_binary factory 4)
+ wan_mac=$(ramips_get_mac_binary factory 40)
+ ;;
+
+ f5d8235-v2)
+ lan_mac=$(ramips_get_mac_binary "u-boot" 262148)
+ wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
+ ;;
+
+ w502u)
+ lan_mac=$(ramips_get_mac_binary factory 40)
+ wan_mac=$(ramips_get_mac_binary factory 46)
+ ;;
+
+ wcr-150gn)
+ lan_mac=$(ramips_get_mac_binary factory 4)
+ wan_mac=$(ramips_get_mac_binary factory 40)
+ ;;
+
+ wl341v3)
+ lan_mac=$(ramips_get_mac_binary board-nvram 65440)
+ wan_mac=$(/usr/sbin/maccalc add "$lan_mac" 1)
+ ;;
+
+ wli-tx4-ag300n)
+ lan_mac=$(ramips_get_mac_binary factory 4)
+ ;;
+
esac
- [ -n $lan_mac ] && set_interface_mac lan $lan_mac
- [ -n $wan_mac ] && set_interface_mac wan $wan_mac
+ [ -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