From 576ea7dee871b10d835305fbf2880bf1f2d894ff Mon Sep 17 00:00:00 2001 From: Gabor Juhos Date: Thu, 1 Dec 2011 22:48:35 +0000 Subject: 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 git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29376 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../ramips/base-files/etc/uci-defaults/network | 119 ++++++++++++++++++++- 1 file changed, 116 insertions(+), 3 deletions(-) (limited to 'target/linux/ramips/base-files/etc/uci-defaults/network') diff --git a/target/linux/ramips/base-files/etc/uci-defaults/network b/target/linux/ramips/base-files/etc/uci-defaults/network index 35b2fccdc6..cd0feaf00b 100755 --- a/target/linux/ramips/base-files/etc/uci-defaults/network +++ b/target/linux/ramips/base-files/etc/uci-defaults/network @@ -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 <&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 <&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 -- cgit v1.2.3