summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 500269c..0fb24ea 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 \