diff options
Diffstat (limited to 'target/linux/au1000')
-rwxr-xr-x | target/linux/au1000/base-files/etc/uci-defaults/02_network | 17 | ||||
-rw-r--r-- | target/linux/au1000/base-files/lib/au1000.sh | 59 |
2 files changed, 76 insertions, 0 deletions
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 0000000000..80bfb732d2 --- /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 0000000000..556598dbc1 --- /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" +} |