aboutsummaryrefslogtreecommitdiffstats
path: root/package/comgt
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2008-04-09 15:35:34 +0000
committerFelix Fietkau <nbd@openwrt.org>2008-04-09 15:35:34 +0000
commit85ae437eae6ba9a2b51dba4bae11f231534f235a (patch)
tree37ad5d67a35d8cc5f9b458d3f59414840bfd8797 /package/comgt
parent6ca15883990239eeae3f34ed8d05865a387278aa (diff)
downloadupstream-85ae437eae6ba9a2b51dba4bae11f231534f235a.tar.gz
upstream-85ae437eae6ba9a2b51dba4bae11f231534f235a.tar.bz2
upstream-85ae437eae6ba9a2b51dba4bae11f231534f235a.zip
fix the 3g interface configuration
The first problem is the "chat" command which misses "-E", so the environment variable addressed inside the script is never used and the script breaks. The second problem is the that you cannot assume an Option card when you did "not discover a Novatel". In my case the script tried to set the mode with the Option AT-command which failed on the Huawei stick. Unfortunaltely I don't have a correct command for that device, so I just want to start the connection without any mode set before thus using the defaults. Signed-off-by: Markus Wigge <mwigge@marcant.net> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@10774 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/comgt')
-rw-r--r--package/comgt/files/3g.sh12
1 files changed, 8 insertions, 4 deletions
diff --git a/package/comgt/files/3g.sh b/package/comgt/files/3g.sh
index 500269ce3d..0fb24ead20 100644
--- a/package/comgt/files/3g.sh
+++ b/package/comgt/files/3g.sh
@@ -55,14 +55,15 @@ setup_interface_3g() {
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
+ cardinfo=$(gcom -d "$device" -s /etc/gcom/getcardinfo.gcom)
+ if echo "$cardinfo" | grep Novatel; then
case "$service" in
umts_only) CODE=2;;
gprs_only) CODE=1;;
*) CODE=0;;
esac
mode="AT\$NWRAT=${CODE},2"
- else
+ elif echo "$cardinfo" | grep Option; then
case "$service" in
umts_only) CODE=1;;
gprs_only) CODE=0;;
@@ -70,17 +71,20 @@ setup_interface_3g() {
esac
mode="AT_OPSYS=${CODE}"
fi
+ # Don't assume Option to be default as it breaks with Huawei Cards/Sticks
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
+ test -z "$mode" || {
+ 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"
+ config_set "$config" "connect" "${apn:+USE_APN=$apn }/usr/sbin/chat -t5 -v -E -f $chat"
start_pppd "$config" \
noaccomp \
nopcomp \