|
|
@@ -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 \
|