summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2008-04-09 15:35:34 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2008-04-09 15:35:34 +0000
commitf043f99dc044ed8c36577faed7f3b2d3f15548e9 (patch)
tree37ad5d67a35d8cc5f9b458d3f59414840bfd8797
parent373ac601ebf23a3f1472b7e5a543730e29bf6436 (diff)
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
-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 500269ce3..0fb24ead2 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 \