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/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
43 for module in slhc ppp_generic ppp_async; do
44 /sbin/insmod $module 2>&- >&-
47 config_get apn "$cfg" apn
48 config_get service "$cfg" service
49 config_get pincode "$cfg" pincode
50 config_get mtu "$cfg" mtu
54 # figure out hardware specific commands for the card
56 cdma|evdo) chat="/etc/chatscripts/evdo.chat";;
58 if gcom -d "$device" -s /etc/gcom/getcardinfo.gcom | grep Novatel 2>/dev/null >/dev/null; then
64 mode="AT\$NWRAT=${CODE},2"
71 mode="AT_OPSYS=${CODE}"
74 PINCODE="$pincode" gcom -d "$device" -s /etc/gcom/setpin.gcom || {
75 echo "$cfg(3g): Failed to set the PIN code."
79 MODE="$mode" gcom -d "$device" -s /etc/gcom/setmode.gcom
83 config_set "$config" "connect" "${apn:+USE_APN=$apn }/usr/sbin/chat -t5 -f $chat"
84 start_pppd "$config" \
92 ${mtu:+mtu $mtu mru $mtu} \