diff options
-rw-r--r-- | package/comgt/Makefile | 1 | ||||
-rw-r--r-- | package/comgt/files/3g.sh | 53 | ||||
-rw-r--r-- | package/comgt/files/evdo.chat | 17 |
3 files changed, 47 insertions, 24 deletions
diff --git a/package/comgt/Makefile b/package/comgt/Makefile index 606f2f1bcf..2cbfec5eb7 100644 --- a/package/comgt/Makefile +++ b/package/comgt/Makefile @@ -48,6 +48,7 @@ define Package/comgt/install $(INSTALL_BIN) ./files/3g.connect $(1)/etc/ppp/3g.connect $(INSTALL_DIR) $(1)/etc/chatscripts $(INSTALL_DATA) ./files/3g.chat $(1)/etc/chatscripts/3g.chat + $(INSTALL_DATA) ./files/evdo.chat $(1)/etc/chatscripts/evdo.chat $(INSTALL_DIR) $(1)/lib/network $(INSTALL_DATA) ./files/3g.sh $(1)/lib/network/3g.sh $(INSTALL_DIR) $(1)/etc/hotplug.d/button diff --git a/package/comgt/files/3g.sh b/package/comgt/files/3g.sh index 5274821a1b..2859a1bda7 100644 --- a/package/comgt/files/3g.sh +++ b/package/comgt/files/3g.sh @@ -36,6 +36,7 @@ stop_interface_3g() { setup_interface_3g() { local iface="$1" local config="$2" + local chat="/etc/chatscripts/3g.chat" config_get device "$config" device @@ -51,30 +52,35 @@ setup_interface_3g() { set_3g_led 1 0 1 # figure out hardware specific commands for the card - if gcom -d "$device" -s /etc/gcom/getcardinfo.gcom | grep Novatel 2>/dev/null >/dev/null; then - case "$service" in - umts_only) CODE=2;; - gprs_only) CODE=1;; - *) CODE=0;; - esac - mode="AT\$NWRAT=${CODE},2" - else - case "$service" in - umts_only) CODE=1;; - gprs_only) CODE=0;; - *) CODE=3;; - esac - mode="AT_OPSYS=${CODE}" - fi - - PINCODE="$pincode" gcom -d "$device" -s /etc/gcom/setpin.gcom || { - echo "$cfg(3g): Failed to set the PIN code." - set_3g_led 0 0 0 - return 1 - } - MODE="$mode" gcom -d "$device" -s /etc/gcom/setmode.gcom + case "$service" in + cdma|evdo) chat="/etc/chatscripts/evdo.chat";; + *) + if gcom -d "$device" -s /etc/gcom/getcardinfo.gcom | grep Novatel 2>/dev/null >/dev/null; then + case "$service" in + umts_only) CODE=2;; + gprs_only) CODE=1;; + *) CODE=0;; + esac + mode="AT\$NWRAT=${CODE},2" + else + case "$service" in + umts_only) CODE=1;; + gprs_only) CODE=0;; + *) CODE=3;; + esac + mode="AT_OPSYS=${CODE}" + fi + + PINCODE="$pincode" gcom -d "$device" -s /etc/gcom/setpin.gcom || { + echo "$cfg(3g): Failed to set the PIN code." + set_3g_led 0 0 0 + return 1 + } + MODE="$mode" gcom -d "$device" -s /etc/gcom/setmode.gcom + esac set_3g_led 1 0 0 + config_set "$config" "connect" "${apn:+USE_APN=$apn }/usr/sbin/chat -t5 -f $chat" start_pppd "$config" \ noaccomp \ nopcomp \ @@ -83,7 +89,6 @@ setup_interface_3g() { noauth \ lock \ crtscts \ - connect "USE_APN=\"$apn\" /etc/ppp/3g.connect" \ ${mtu:+mtu $mtu mru $mtu} \ - 460800 "$device" + 115200 "$device" } diff --git a/package/comgt/files/evdo.chat b/package/comgt/files/evdo.chat new file mode 100644 index 0000000000..de49e41a1b --- /dev/null +++ b/package/comgt/files/evdo.chat @@ -0,0 +1,17 @@ +# This is a simple chat script based off of the one provided by Sierra Wireless +# for CDMA connections. It should work for both Sprint and Verizon networks. + +ABORT BUSY +ABORT 'NO CARRIER' +ABORT ERROR +ABORT 'NO DIAL TONE' +ABORT 'NO ANSWER' +ABORT DELAYED +REPORT CONNECT +TIMEOUT 10 +'' AT +OK ATZ +SAY 'Calling CDMA/EVDO' +TIMEOUT 30 +OK ATDT#777 +CONNECT '' |