diff options
author | Felix Fietkau <nbd@openwrt.org> | 2008-02-02 01:21:31 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2008-02-02 01:21:31 +0000 |
commit | 738d610209c81288218c31b1edd99e20449550ae (patch) | |
tree | 19c414aa888eae15efc9ee3ffd641543715df825 | |
parent | 875cd251a031f2e838ba43bfdcbdd684e0d2234b (diff) | |
download | mtk-20170518-738d610209c81288218c31b1edd99e20449550ae.zip mtk-20170518-738d610209c81288218c31b1edd99e20449550ae.tar.gz mtk-20170518-738d610209c81288218c31b1edd99e20449550ae.tar.bz2 |
Add CDMA/EVDO support to comgt package
This patch adds a chat script and makes some modifications to
/lib/network/3g.sh to enable seamless use of CDMA/EVDO modems in
addition to the existing GPRS/UMTS support. Modifications to 3g.sh
are:
- Added 'chat' variable to point at the appropriate script
- Added 'evdo' and 'cdma' as acceptable 'service' values, and skip
the whole gcom initialization bit
- Changed pppd connection speed from 460800 to more widely supported
115200; in my experience, this is not your actual connection speed,
but at what speed pppd sends setup commands to the interface.
This kinda eliminates the need for /etc/ppp/3g.connect - I think I've
replaced that functionality, but in a slightly more standardized
method, using the 'connect' variable understood by PPP.
Signed-off-by: RB<aoz.syn@gmail.com>
SVN-Revision: 10347
-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 606f2f1..2cbfec5 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 5274821..2859a1b 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 0000000..de49e41 --- /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 '' |