I was trying to get a Huawei 3G USB-Stick running on an WL-500GP
using a 
2.6 kernel built from trunk.

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 <[EMAIL PROTECTED]>

---

Index: package/comgt/files/3g.sh
===================================================================
--- package/comgt/files/3g.sh   (revision 10522)
+++ package/comgt/files/3g.sh   (working copy)
@@ -55,14 +55,15 @@
        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 
2>/dev/null >/dev/null)
+               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 @@
                        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 \

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
http://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to