3 [ -d /proc
/diag
] ||
return 0
4 grep WRT54G3G
/proc
/diag
/model
>/dev
/null ||
return 0
5 echo "$1" > /proc
/diag
/led
/3g_green
6 echo "$2" > /proc
/diag
/led
/3g_blue
7 echo "$3" > /proc
/diag
/led
/3g_blink
14 config_get device
"$1" device
16 # try to figure out the device if it's invalid
17 [ -n "$device" -a -e "$device" ] ||
{
18 for device
in /dev
/ttyUSB0
/dev
/ttyUSB1
/dev
/ttyUSB2
/dev
/tts
/2 /dev
/usb
/tts
/0 /dev
/noz0
; do
20 config_set
"$1" device
"$device"
26 # enable 3G with the 3G button by default
27 config_get button
"$1" button
29 config_set
"$1" button
1
35 killall gcom
>/dev
/null
2>/dev
/null
38 setup_interface_3g
() {
41 local chat
="/etc/chatscripts/3g.chat"
43 config_get device
"$config" device
44 config_get maxwait
"$config" maxwait
45 maxwait
=${maxwait:-20}
46 while [ ! -e "$device" -a $maxwait -gt 0 ];do # wait for driver loading to catch up
47 maxwait
=$
(($maxwait - 1))
51 for module
in slhc ppp_generic ppp_async
; do
52 /sbin
/insmod
$module 2>&- >&-
55 config_get apn
"$config" apn
56 config_get service
"$config" service
57 config_get pincode
"$config" pincode
58 config_get mtu
"$config" mtu
62 # figure out hardware specific commands for the card
64 cdma|evdo
) chat
="/etc/chatscripts/evdo.chat";;
66 cardinfo
=$
(gcom
-d "$device" -s /etc
/gcom
/getcardinfo.gcom
)
67 if echo "$cardinfo" |
grep Novatel
; then
73 mode
="AT\$NWRAT=${CODE},2"
74 elif echo "$cardinfo" |
grep Option
; then
80 mode
="AT_OPSYS=${CODE}"
82 # Don't assume Option to be default as it breaks with Huawei Cards/Sticks
84 PINCODE
="$pincode" gcom
-d "$device" -s /etc
/gcom
/setpin.gcom ||
{
85 echo "$config(3g): Failed to set the PIN code."
90 MODE
="$mode" gcom
-d "$device" -s /etc
/gcom
/setmode.gcom
95 config_set
"$config" "connect" "${apn:+USE_APN=$apn }/usr/sbin/chat -t5 -v -E -f $chat"
96 start_pppd
"$config" \
104 ${mtu:+mtu $mtu mru $mtu} \