The target au1000 has at least 2 different models, the
'InternetBox' and the 'MeshCube' which look very similar
from the kernel point of view but are totally different
devices which base on the same design. Populating /tmp/sysinfo
now. The 1st one has an issue which leads to a random
mac-address after each boot which is corrected now via
reading the bootloader-env. The real fix would be
converting to DTS, this is only a workaround now.

Signed-off-by: Bastian Bittorf <bitt...@bluebottle.com>
---
 .../au1000/base-files/etc/uci-defaults/02_network  |   17 ++++++
 target/linux/au1000/base-files/lib/au1000.sh       |   59 ++++++++++++++++++++
 2 files changed, 76 insertions(+)
 create mode 100755 target/linux/au1000/base-files/etc/uci-defaults/02_network
 create mode 100644 target/linux/au1000/base-files/lib/au1000.sh

diff --git a/target/linux/au1000/base-files/etc/uci-defaults/02_network 
b/target/linux/au1000/base-files/etc/uci-defaults/02_network
new file mode 100755
index 0000000..80bfb73
--- /dev/null
+++ b/target/linux/au1000/base-files/etc/uci-defaults/02_network
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+. /lib/au1000.sh
+. /lib/functions/system.sh
+. /lib/functions/uci-defaults.sh
+MAC=
+
+case "$(au1000_board_name)" in
+       'internetbox')
+               MAC="$( au1000_yamonenv_getvar 'ethaddr' )"
+               MAC="$( macaddr_canonicalize "$MAC" )"
+
+               [ -n "$MAC ] && ucidef_set_interface_macaddr lan "$MAC"
+       ;;
+esac
+
+[ -z "$MAC" ] || uci commit network
diff --git a/target/linux/au1000/base-files/lib/au1000.sh 
b/target/linux/au1000/base-files/lib/au1000.sh
new file mode 100644
index 0000000..556598d
--- /dev/null
+++ b/target/linux/au1000/base-files/lib/au1000.sh
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+au1000_yamonenv_getvar()
+{
+       local varname="$1"
+       local partition
+
+       . /lib/functions.sh
+
+       partition="$( find_mtd_part 'yamon env' )"
+       YAMONENVFILE="$partition" yamonenv "$varname"
+}
+
+au1000_detect()
+{
+       local line board_name model
+
+       while read line; do
+               case "$line" in
+                       'system type'*)
+                               break
+                       ;;
+               esac
+       done <'/proc/cpuinfo'
+
+       case "$line" in
+               *' MTX-1')
+                       # both models appear nearly similar: the 'InternetBox' 
has
+                       # the same design but shrinked to 1 PCB and only 1 x 
miniPCI
+                       # for WiFi/ath5k and 1 x miniPCI for CardBus/UMTS, they 
differ
+                       # in BogoMIPS but there are old MeshCubes with 330 Mhz 
instead
+                       # of 400 MHz and no Cube has 'imei' (for UMTS) set in 
bootloader-env
+
+                       if [ -n "$( au1000_yamonenv_getvar 'imei' )" ]; then
+                               board_name='internetbox'
+                               model='T-Mobile InternetBox TMD SB1-S'
+                       else
+                               board_name='meshcube'
+                               model='4G Systems AccessCube/MeshCube'
+                       fi
+               ;;
+               *)
+                       board_name='unknown'
+                       model='unknown'
+               ;;
+       esac
+
+       mkdir -p '/tmp/sysinfo'
+       echo "$board_name" >'/tmp/sysinfo/board_name'
+       echo "$model" >'/tmp/sysinfo/model'
+}
+
+au1000_board_name()
+{
+       local file='/tmp/sysinfo/board_name'
+
+       [ -e "$file" ] || au1000_detect
+       cat "$file"
+}
-- 
1.7.10.4
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to