2 grep WRT54G3G
/proc
/diag
/model
>/dev
/null ||
return 0
3 echo "$1" > /proc
/diag
/led
/3g_green
4 echo "$2" > /proc
/diag
/led
/3g_blue
5 echo "$3" > /proc
/diag
/led
/3g_blink
12 config_get device
"$1" device
14 # try to figure out the device if it's invalid
15 [ -n "$device" -a -e "$device" ] ||
{
16 for device
in /dev
/ttyUSB0
/dev
/ttyUSB1
/dev
/ttyUSB2
/dev
/tts
/2 /dev
/usb
/tts
/0 /dev
/noz0
; do
18 config_set
"$1" device
"$device"
24 # enable 3G with the 3G button by default
25 config_get button
"$1" button
27 config_set
"$1" button
1
33 killall gcom
>/dev
/null
2>/dev
/null
36 setup_interface_3g
() {
39 local chat
="/etc/chatscripts/3g.chat"
41 config_get device
"$config" device
42 config_get maxwait
"$config" maxwait
43 maxwait
=${maxwait:-20}
44 while [ ! -e "$device" -a $maxwait -gt 0 ];do # wait for driver loading to catch up
45 maxwait
=$
(($maxwait - 1))
49 for module
in slhc ppp_generic ppp_async
; do
50 /sbin
/insmod
$module 2>&- >&-
53 config_get apn
"$config" apn
54 config_get service
"$config" service
55 config_get pincode
"$config" pincode
56 config_get mtu
"$config" mtu
60 # figure out hardware specific commands for the card
62 cdma|evdo
) chat
="/etc/chatscripts/evdo.chat";;
64 cardinfo
=$
(gcom
-d "$device" -s /etc
/gcom
/getcardinfo.gcom
)
65 if echo "$cardinfo" |
grep Novatel
; then
71 mode
="AT\$NWRAT=${CODE},2"
72 elif echo "$cardinfo" |
grep Option
; then
78 mode
="AT_OPSYS=${CODE}"
80 # Don't assume Option to be default as it breaks with Huawei Cards/Sticks
82 PINCODE
="$pincode" gcom
-d "$device" -s /etc
/gcom
/setpin.gcom ||
{
83 echo "$config(3g): Failed to set the PIN code."
88 MODE
="$mode" gcom
-d "$device" -s /etc
/gcom
/setmode.gcom
93 config_set
"$config" "connect" "${apn:+USE_APN=$apn }/usr/sbin/chat -t5 -v -E -f $chat"
94 start_pppd
"$config" \
102 ${mtu:+mtu $mtu mru $mtu} \