source: ipk/source/swapnetwork_wlan_300/var/etc/autostart/wlan@ 6710

Last change on this file since 6710 was 6710, checked in by capt_bluebaer, 15 years ago

[ipk] wireless rt2870 fix

File size: 4.5 KB
Line 
1#######/bin/sh
2
3if [ `df | grep /dev/mtdblock | grep var | sed 's/ \+/ /g' | cut -d ' ' -f4 | tail -n1 | wc -l` -eq 1 ]; then
4 echo "[wlan] checking swapstick..."
5 if [ ! -d /var/swap/bin/ ]; then
6 echo "[wlan] no swapstick found!" | tee -a $WLAN_LOG
7 return
8 fi
9 echo "[wlan] swapstick found" | tee $WLAN_LOG
10fi
11
12if [ ! -z $WLAN_STARTMODE ] && [ $WLAN_STARTMODE == "load" ]; then
13 if [ ! "$debug" = 'off' ]; then
14 echo $CMD ["$INPUT"] startWlan
15 fi
16
17 [ ! -f /etc/Wireless/wlan.usbmap ] && rm -f /etc/Wireless/wlan_module && return
18 WLAN_MODULE=
19 MEM=$IFS
20 IFS=$'\012'
21 echo "[wlan] searching wireless-module ..." | tee -a $WLAN_LOG
22 USBIDS=`cat /proc/bus/usb/devices | grep ^P:`
23 if [ -f /etc/Wireless/wlan_module ]; then
24 WLAN_MODULE=`cat /etc/Wireless/wlan_module | awk {'print $1'}`
25 VID=`cat /etc/Wireless/wlan_module | awk {'print $2'}`
26 PID=`cat /etc/Wireless/wlan_module | awk {'print $3'}`
27 fi
28 if [ -z $WLAN_MODULE ] || [ -z "`echo $USBIDS | grep $VID | grep $PID`" ]; then
29 for i in $USBIDS; do
30 VID=`echo $i | awk {'print $2'} | cut -d"=" -f2`
31 PID=`echo $i | awk {'print $3'} | cut -d"=" -f2`
32 WLAN_MODULE=
33 for j in `cat /etc/Wireless/wlan.usbmap`; do
34 if [ `echo $j | awk {'print $3'}` == 0x$VID ] && [ `echo $j | awk {'print $4'}` == 0x$PID ]; then
35 WLAN_MODULE=`echo $j | awk {'print $1'}`
36 break
37 fi
38 done
39 [ ! -z $WLAN_MODULE ] && break
40 done
41 [ ! -z $WLAN_MODULE ] && echo $WLAN_MODULE $VID $PID > /etc/Wireless/wlan_module || rm -f /etc/Wireless/wlan_module
42 fi
43 [ -z $WLAN_MODULE ] && echo "[wlan] no applicable USB WLAN device found" | tee -a $WLAN_LOG && return
44 IFS=$MEM
45 echo "[wlan] loading $WLAN_MODULE.ko" | tee -a $WLAN_LOG
46 [ $WLAN_MODULE == "rt73" ] && insmod /var/swap/modules/funcemu.ko
47 insmod /var/swap/modules/$WLAN_MODULE.ko
48 sleep 1
49 [ -z "`lsmod | grep $WLAN_MODULE`" ] && echo "[wlan] could not load $WLAN_MODULE" | tee -a $WLAN_LOG && return
50 sleep 1
51 case $WLAN_MODULE in
52 zd1211 | zd1211b ) WLAN_IF=eth1
53 WLAN_DRV=zydas
54 ;;
55 rt73 ) WLAN_IF=rausb0
56 WLAN_DRV=ralink
57 ;;
58 rt2870sta | rt3070sta ) WLAN_IF=ra0
59 WLAN_DRV=wext
60 ;;
61 * ) echo "[wlan] Unknown module $WLAN_MODULE" | tee -a $WLAN_LOG && return
62 ;;
63 esac
64 ifconfig $WLAN_IF 0.0.0.0 up
65 [ -z "`ifconfig | grep $WLAN_IF`" ] && rmmod $WLAN_MODULE && echo "[wlan] $WLAN_IF not ready" | tee -a $WLAN_LOG && return
66 sleep 1
67
68 if [ -z "`cat /var/etc/network/interfaces | grep \"auto $WLAN_IF\"`" ]; then
69 echo "[wlan] wireless interface $WLAN_IF not activated" | tee -a $WLAN_LOG
70 python /var/etc/network/wlanscan.pyc $WLAN_IF
71 ifconfig $WLAN_IF down
72 return
73 fi
74 if [ ! -f /etc/wpa_supplicant.conf ]; then
75 echo "[wlan] wireless lan not yet configured" | tee -a $WLAN_LOG
76 python /var/etc/network/wlanscan.pyc $WLAN_IF
77 ifconfig $WLAN_IF down
78 return
79 fi
80fi
81if [ -z $WLAN_STARTMODE ] || [ $WLAN_STARTMODE == "load" ] || [ $WLAN_STARTMODE == "connect" ]; then
82 rm -Rf /var/run/wpa_supplicant*
83 AP_TRIES=20
84 AP=`cat /etc/wpa_supplicant.conf | grep ssid | grep -v scan_ssid | cut -d"=" -f2`
85 echo "[wlan] starting wpa_supplicant ..." | tee -a $WLAN_LOG
86 /var/bin/wpa_supplicant -B -i $WLAN_IF -P /var/run/wpa_supplicant.pid -D $WLAN_DRV -c /etc/wpa_supplicant.conf
87 while [ $AP_TRIES -gt 0 ]; do
88 AP_STATE=`/var/bin/wpa_cli -i $WLAN_IF -p /var/run/wpa_supplicant status | grep wpa_state | cut -d"=" -f2`
89 [ "$AP_STATE" == "COMPLETED" ] && echo "[wlan] association with $AP completed" | tee -a $WLAN_LOG && break
90 AP_TRIES=$((AP_TRIES-1))
91 sleep 1
92 done
93 if [ $AP_TRIES -lt 1 ]; then
94 case "$AP_STATE" in
95 "SCANNING" ) echo -e "[wlan] access point $AP not found (scanning aborted...)" | tee -a $WLAN_LOG
96 ;;
97 * ) echo -e "[wlan] authentification to access point $AP failed" | tee -a $WLAN_LOG
98 ;;
99 esac
100 python /var/etc/network/wlanscan.pyc $WLAN_IF
101 kill -9 `cat /var/run/wpa_supplicant.pid`
102 rm /var/run/wpa_supplicant.pid
103 ifconfig $WLAN_IF down
104 return
105 fi
106 python /var/etc/network/wlanscan.pyc $WLAN_IF
107 ETH0IP=`ifconfig eth0 | grep -m1 "inet addr" | sed s/"^\s*"// | sed s/" \+"/" "/g | cut -d " " -f2 | cut -d ":" -f2`
108 [ -z $ETH0IP ] && ETH0IP="0.0.0.0"
109 ip addr flush eth0
110 startNetwork $WLAN_IF
111 ifconfig eth0 $ETH0IP
112 IP=`ifconfig $WLAN_IF | grep -m1 "inet addr" | sed s/"^\s*"// | sed s/" \+"/" "/g | cut -d " " -f2 | cut -d ":" -f2`
113 NET=`echo ${IP%.*}`
114 ( /var/bin/fping -l -b12 -q -i2000 -g $NET.1 $NET.254 2> /dev/null ) &
115else
116 echo "[wlan] unknown wireless startmode $WLAN_STARTMODE" | tee -a $WLAN_LOG && break
117fi
Note: See TracBrowser for help on using the repository browser.