source: ipk/source.sh4/swapnetwork_wlan_300/var/etc/autostart/wlan@ 8777

Last change on this file since 8777 was 7451, checked in by BPanther, 15 years ago

[ipk] - copy source->source.sh4

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