mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-02-02 23:11:06 +02:00
ramips: combine network setup for all boards in one file
Inspired by the patch from Roman Yeryomin. Thanks, Roman! This removes unnecessary duplication and simplifies network setup for new boards. It would be a one line change most likely. [juhosg: setup lan and wan interfaces for unspecified rt3x0x based boards in order to avoid regression] Signed-off-by: Alexander Gordeev <lasaine@lvk.cs.msu.su> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29376 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
a19c8df6f7
commit
f9f721e5ba
@ -1,6 +1,15 @@
|
||||
#!/bin/sh
|
||||
RT3X5X=`cat /proc/cpuinfo | grep RT3.5`
|
||||
[ -z "${RT3X5X}" ] || {
|
||||
|
||||
. /etc/functions.sh
|
||||
. /lib/ramips.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
|
||||
@ -10,4 +19,108 @@ commit network
|
||||
EOF
|
||||
}
|
||||
|
||||
uci commit network
|
||||
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_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"
|
||||
}
|
||||
|
||||
board=$(ramips_board_name)
|
||||
|
||||
case $board in
|
||||
f5d8235-v2)
|
||||
create_lan_wan
|
||||
set_macs_only_lan_from_mtd "u-boot" 262148
|
||||
;;
|
||||
argus-atp52b | \
|
||||
nw718)
|
||||
create_lan_wan
|
||||
set_macs_only_lan_from_mtd "factory" 4
|
||||
;;
|
||||
*)
|
||||
RT3X5X=`cat /proc/cpuinfo | grep RT3.5`
|
||||
[ -z "${RT3X5X}" ] || create_lan_wan
|
||||
;;
|
||||
esac
|
||||
|
@ -1,36 +0,0 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (C) 2011 OpenWrt.org
|
||||
#
|
||||
|
||||
nw718_set_macs() {
|
||||
local part
|
||||
local lan_mac
|
||||
local wan_mac
|
||||
|
||||
[ -z $(which maccalc) ] && return
|
||||
|
||||
. /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 | maccalc bin2mac)
|
||||
[ -z $lan_mac ] && 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
|
||||
}
|
||||
|
||||
. /lib/ramips.sh
|
||||
|
||||
board=$(ramips_board_name)
|
||||
|
||||
if [ "${board}" == "nw718" ]; then
|
||||
nw718_set_macs
|
||||
fi
|
Loading…
x
Reference in New Issue
Block a user