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>

SVN-Revision: 10774
This commit is contained in:
Felix Fietkau 2008-04-09 15:35:34 +00:00
parent 06ff5f2cd2
commit 081ebaca76

View file

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