source: ipk/source.sh4/swapnetwork_wlan_400/var/etc/autostart/wlan@ 14810

Last change on this file since 14810 was 14810, checked in by capt_bluebaer, 14 years ago

[ipk] wireless: update modules and some small fixes

File size: 4.4 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=`lsusb | awk {'print $6'}`
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 | cut -d':' -f1`
35 PID=`echo $i | 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 insmod /var/swap/modules/$WLAN_MODULE.ko
51 sleep 1
52 [ -z "`lsmod | grep $WLAN_MODULE`" ] && echo "[wlan] could not load $WLAN_MODULE" | tee -a $WLAN_LOG && return
53 sleep 1
54 case $WLAN_MODULE in
55 zd1211 | zd1211b )
56 WLAN_IF=ath0
57 WLAN_DRV=zydas
58 ;;
59# rt73 )
60# WLAN_IF=rausb0
61# WLAN_DRV=ralink
62# ;;
63 rt3070sta | rt3572sta )
64 WLAN_IF=ra0
65 WLAN_DRV=wext
66 ;;
67 * ) echo "[wlan] Unknown module $WLAN_MODULE" | tee -a $WLAN_LOG && return
68 ;;
69 esac
70 ifconfig $WLAN_IF 0.0.0.0 up
71 [ -z "`ifconfig | grep $WLAN_IF`" ] && rmmod $WLAN_MODULE && echo "[wlan] $WLAN_IF not ready" | tee -a $WLAN_LOG && return
72 sleep 1
73
74 if [ -z "`cat /var/etc/network/interfaces | grep \"auto $WLAN_IF\"`" ]; then
75 echo "[wlan] wireless interface $WLAN_IF not activated" | tee -a $WLAN_LOG
76 python /var/etc/Wireless/wlanscan.pyc $WLAN_IF
77 ifconfig $WLAN_IF down
78 return
79 fi
80 if [ ! -f /etc/wpa_supplicant.conf ]; then
81 echo "[wlan] wireless lan not yet configured" | tee -a $WLAN_LOG
82 python /var/etc/network/wlanscan.pyc $WLAN_IF
83 ifconfig $WLAN_IF down
84 return
85 fi
86fi
87if [ -z $WLAN_STARTMODE ] || [ $WLAN_STARTMODE == "load" ] || [ $WLAN_STARTMODE == "connect" ]; then
88 rm -Rf /var/run/wpa_supplicant*
89 AP_TRIES=20
90 AP=`cat /etc/wpa_supplicant.conf | grep ssid | grep -v scan_ssid | cut -d"=" -f2`
91 echo "[wlan] starting wpa_supplicant ..." | tee -a $WLAN_LOG
92 /var/bin/wpa_supplicant -B -i $WLAN_IF -P /var/run/wpa_supplicant.pid -D $WLAN_DRV -c /etc/wpa_supplicant.conf
93 while [ $AP_TRIES -gt 0 ]; do
94 AP_STATE=`/var/bin/wpa_cli -i $WLAN_IF -p /var/run/wpa_supplicant status | grep wpa_state | cut -d"=" -f2`
95 [ "$AP_STATE" == "COMPLETED" ] && echo "[wlan] association with $AP completed" | tee -a $WLAN_LOG && break
96 AP_TRIES=$((AP_TRIES-1))
97 sleep 1
98 done
99 if [ $AP_TRIES -lt 1 ]; then
100 case "$AP_STATE" in
101 "SCANNING" ) echo -e "[wlan] access point $AP not found (scanning aborted...)" | tee -a $WLAN_LOG
102 ;;
103 * ) echo -e "[wlan] authentification to access point $AP failed" | tee -a $WLAN_LOG
104 ;;
105 esac
106 python /var/etc/network/wlanscan.pyc $WLAN_IF
107 kill -9 `cat /var/run/wpa_supplicant.pid`
108 rm /var/run/wpa_supplicant.pid
109 ifconfig $WLAN_IF down
110 return
111 fi
112 python /var/etc/network/wlanscan.pyc $WLAN_IF
113 startNetwork $WLAN_IF
114 ( startWaitfor "/tmp/.networkready" 30
115 IP=`ifconfig $WLAN_IF | grep -m1 "inet addr" | sed s/"^\s*"// | sed s/" \+"/" "/g | cut -d " " -f2 | cut -d ":" -f2`
116 NET=`echo ${IP%.*}`
117 /var/bin/fping -l -b12 -q -i2000 -g $NET.1 $NET.254 2> /dev/null &
118 echo "[wlan] completed, now checking recordshare by hotplug" | tee -a $WLAN_LOG
119 /sbin/hotplug.sh checkRecordShare ) &
120else
121 echo "[wlan] unknown wireless startmode $WLAN_STARTMODE" | tee -a $WLAN_LOG && break
122fi
Note: See TracBrowser for help on using the repository browser.