1#!/bin/sh 2PATH=/usr/bin:/bin:/usr/sbin:/sbin 3 4 5echo "LTE: ### START ###" | logger ; 6nvram set lte_update_status=0 7if [ "`nvram get usb_path1`" != "storage" ] ; then 8 echo "LTE: No USB storage is found !" | logger 9 nvram set lte_update_status=4 10 exit 1; 11fi 12 13path_dev=`nvram get usb_path1_fs_path0` 14mounted_path=`mount |grep $path_dev |awk '{print $3}'` 15 16FOLDER=$mounted_path/4G-AC55U_LTE 17 18if [ ! -d ${FOLDER} ] ; then 19 echo "LTE: Folder /4G-AC55U_LTE/ not found !" | logger 20 nvram set lte_update_status=5 21 exit 1; 22fi 23cd ${FOLDER} 24 25 26if [ ! -f version ] ; then 27 echo "LTE: ## STOP ### version file not exist !!" | logger ; 28 nvram set lte_update_status=6 29 exit 1 ; 30elif [ ! -f update.zip ] ; then 31 echo "LTE: ### STOP ### update.zip file not exist !!" | logger ; 32 nvram set lte_update_status=7 33 exit 1 ; 34elif [ ! -f update.md5 ] ; then 35 echo "LTE: ### STOP ### update.md5 file not exist !!" | logger ; 36 nvram set lte_update_status=8 37 exit 1 ; 38elif [ `md5sum -s -c update.md5` ] ; then 39 echo "LTE: ### STOP ### md5sum fail" | logger ; 40 nvram set lte_update_status=9 41 exit 1 ; 42elif [ `ATE Get_GobiVersion > /tmp/GobiVer` ] ; then 43 echo "LTE: Cannot get Gobi Version" | logger ; 44 nvram set lte_update_status=10 45 exit 0 ; 46elif [ `cat /tmp/GobiVer` = `cat version` ] ; then 47 echo "LTE: Up to date. Exit" | logger ; 48 nvram set lte_update_status=11 49 exit 0 ; 50elif [ "`ATE Get_GobiSimCard`" = "PASS" ] ; then 51 echo "LTE: ### STOP ### Remove SIM Card and try again" | logger ; 52 nvram set lte_update_status=12 53 exit 1 ; 54else 55 killall wanduck 56 killall lteled 57 insmod cdc_ether.ko 58 sleep 1 ; 59 60 echo "LTE: switch Gobi mode to internal network" | logger ; 61 chat -e '' "at+cfotamode" OK >> /dev/ttyACM1 < /dev/ttyACM1 ; 62 echo $? | logger ; 63 sleep 3 ; 64 65 echo "LTE: Gobi internal network: ifup" | logger ; 66 ifconfig usb0 up ; 67 echo $? | logger ; 68 69 echo "LTE: Gobi internal network: getting IP" | logger ; 70 udhcpc -i usb0 -p /var/run/udhcpc1.pid -s /tmp/udhcpc -O33 -O249 -q ; 71 echo $? | logger ; 72 sleep 3 ; 73 74 chat -e '' "at+cexecfile=rm -rf /cache/" OK >> /dev/ttyACM1 < /dev/ttyACM1 75 sleep 1 76 77 echo "LTE: Gobi internal network: uploading update.zip" | logger ; 78# tftp -p -l update.zip -b 32768 192.168.225.1 79 tftp -p -l update.zip 192.168.225.1 80 echo $? | logger ; 81 sleep 3 ; 82 83 echo "LTE: Gobi internal network: uploading update.md5" | logger ; 84# tftp -p -l update.md5 -b 32768 192.168.225.1 85 tftp -p -l update.md5 192.168.225.1 86 echo $? | logger ; 87 sleep 1 ; 88 89 echo "LTE: updating from `cat /tmp/GobiVer` to `cat version`" | logger ; 90 chat -e '' "at+cfotaupdate" OK >> /dev/ttyACM1 < /dev/ttyACM1 91 echo $? | logger ; 92 93 echo "LTE: Waiting for active" | logger ; 94 sleep 180 ; 95 96 actdev=`nvram get usb_modem_act_dev` 97 echo "LTE: ### actdev=$actdev. ###" | logger ; 98 if [ $actdev != "usb0" ] ; then 99 sleep 5; 100 fi 101 102 if [ `grep -q GobiNet /proc/bus/usb/devices` ] ; then 103 echo "LTE: ### FAIL ###" | logger ; 104 nvram set lte_update_status=2 105 #exit 1; 106 #elif [ `ATE Get_GobiVersion` != `cat version` ] ; then 107 # echo "LTE: ATE Get_GobiVersion = `ATE Get_GobiVersion`" | logger ; 108 # echo "LTE: cat version = `cat version`" | logger ; 109 # echo "LTE: ### FAIL version incorrect ###" | logger ; 110 # nvram set lte_update_status=3 111 #exit 1; 112 else 113 echo "LTE: ### SUCCESS ###" | logger ; 114 nvram set lte_update_status=1 115 if [ `ATE Get_GobiVersion` != `FAIL` ] ; then 116 nvram set usb_modem_act_swver=`ATE Get_GobiVersion` 117 fi 118 fi 119fi 120 121echo "LTE: ### Finish ###" | logger ; 122wanduck & 123echo $? | logger ; 124sleep 1 ; 125lteled & 126echo $? | logger ; 127