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 | 2a189e94a6919c7a616bc8b891b16503c8934a32 (patch) | |
tree | 3b4b5c4165299b1b3dc738155590b88c7ded0038 /package/comgt/files/3g.sh | |
parent | 507ae0f23a7ba8d65af0801f1fd8e1554348e44c (diff) | |
download | upstream-2a189e94a6919c7a616bc8b891b16503c8934a32.tar.gz upstream-2a189e94a6919c7a616bc8b891b16503c8934a32.tar.bz2 upstream-2a189e94a6919c7a616bc8b891b16503c8934a32.zip |
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>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@10347 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/comgt/files/3g.sh')
-rw-r--r-- | package/comgt/files/3g.sh | 53 |
1 files changed, 29 insertions, 24 deletions
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" } |