diff options
author | John Crispin <blogic@openwrt.org> | 2014-06-19 14:13:20 +0000 |
---|---|---|
committer | John Crispin <blogic@openwrt.org> | 2014-06-19 14:13:20 +0000 |
commit | 531c49cf7e4a9dcf386cc582a2a6d82132011b7e (patch) | |
tree | 80d24449a7f217fe8c6a411fd8c9d7df7a63dcc0 | |
parent | bb3632cae7bc25f81855efbbaeab79ee5120a6ce (diff) | |
download | master-187ad058-531c49cf7e4a9dcf386cc582a2a6d82132011b7e.tar.gz master-187ad058-531c49cf7e4a9dcf386cc582a2a6d82132011b7e.tar.bz2 master-187ad058-531c49cf7e4a9dcf386cc582a2a6d82132011b7e.zip |
octeon: add basic board detection
Signed-off-by: John Crispin <blogic@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@41274 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r-- | target/linux/octeon/base-files.mk | 3 | ||||
-rw-r--r-- | target/linux/octeon/base-files/etc/config/network | 18 | ||||
-rw-r--r-- | target/linux/octeon/base-files/etc/uci-defaults/01_network | 31 | ||||
-rwxr-xr-x | target/linux/octeon/base-files/lib/functions/octeon.sh | 42 |
4 files changed, 76 insertions, 18 deletions
diff --git a/target/linux/octeon/base-files.mk b/target/linux/octeon/base-files.mk new file mode 100644 index 0000000000..fdd2c714b2 --- /dev/null +++ b/target/linux/octeon/base-files.mk @@ -0,0 +1,3 @@ +define Package/base-files/install-target + rm -f $(1)/etc/config/network +endef diff --git a/target/linux/octeon/base-files/etc/config/network b/target/linux/octeon/base-files/etc/config/network deleted file mode 100644 index 44c57940e2..0000000000 --- a/target/linux/octeon/base-files/etc/config/network +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright (C) 2009 OpenWrt.org - -config interface loopback - option ifname lo - option proto static - option ipaddr 127.0.0.1 - option netmask 255.0.0.0 - -config interface lan - option ifname eth1 - option type bridge - option proto static - option ipaddr 192.168.1.1 - option netmask 255.255.255.0 - -config interface wan - option ifname eth0 - option proto dhcp diff --git a/target/linux/octeon/base-files/etc/uci-defaults/01_network b/target/linux/octeon/base-files/etc/uci-defaults/01_network new file mode 100644 index 0000000000..bda8d0c75c --- /dev/null +++ b/target/linux/octeon/base-files/etc/uci-defaults/01_network @@ -0,0 +1,31 @@ +#!/bin/sh +# +# Copyright (C) 2014 OpenWrt.org +# + +[ -e /etc/config/network ] && exit 0 + +. /lib/functions/uci-defaults.sh +. /lib/functions/octeon.sh + +touch /etc/config/network + +board=$(octeon_board_name) + +case "$board" in +erlite) + ucidef_set_interface_loopback + ucidef_set_interface_lan 'eth0' + ucidef_set_interface_wan 'eth1' + ;; + +*) + ucidef_set_interface_loopback + ucidef_set_interface_wan 'eth1' + ucidef_set_interface_lan 'eth0' + ;; +esac + +uci commit network + +exit 0 diff --git a/target/linux/octeon/base-files/lib/functions/octeon.sh b/target/linux/octeon/base-files/lib/functions/octeon.sh new file mode 100755 index 0000000000..8871ed7117 --- /dev/null +++ b/target/linux/octeon/base-files/lib/functions/octeon.sh @@ -0,0 +1,42 @@ +#!/bin/sh +# +# Copyright (C) 2010-2013 OpenWrt.org +# + +OCTEON_BOARD_NAME= +OCTEON_MODEL= + +octeon_board_detect() { + local machine + local name + + machine=$(grep "^system type" /proc/cpuinfo | sed "s/system type.*: \(.*\)/\1/g") + + case "$machine" in + "UBNT_E100"*) + name="erlite" + ;; + + *) + name="generic" + ;; + esac + + [ -z "$OCTEON_BOARD_NAME" ] && OCTEON_BOARD_NAME="$name" + [ -z "$OCTEON_MODEL" ] && OCTEON_MODEL="$machine" + + [ -e "/tmp/sysinfo/" ] || mkdir -p "/tmp/sysinfo/" + + echo "$OCTEON_BOARD_NAME" > /tmp/sysinfo/board_name + echo "$OCTEON_MODEL" > /tmp/sysinfo/model +} + +octeon_board_name() { + local name + + [ -f /tmp/sysinfo/board_name ] || octeon_board_detect + [ -f /tmp/sysinfo/board_name ] && name=$(cat /tmp/sysinfo/board_name) + [ -z "$name" ] && name="unknown" + + echo "$name" +} |