#######/bin/sh startWaitfor "/tmp/.hotplugready" 20 if [ `df | grep /dev/mtdblock | grep var | sed 's/ \+/ /g' | cut -d ' ' -f4 | tail -n1 | wc -l` -eq 1 ]; then echo "[wlan] checking swapstick..." if [ ! -d /var/swap/bin/ ]; then echo "[wlan] no swapstick found!" | tee -a $WLAN_LOG return fi echo "[wlan] swapstick found" | tee $WLAN_LOG fi rm -f /tmp/.networkready if [ ! -z $WLAN_STARTMODE ] && [ $WLAN_STARTMODE == "load" ]; then if [ ! "$debug" = 'off' ]; then echo $CMD ["$INPUT"] startWlan fi [ ! -f /etc/Wireless/wlan.usbmap ] && rm -f /etc/Wireless/wlan_module && return WLAN_MODULE= MEM=$IFS IFS=$'\012' echo "[wlan] searching wireless-module ..." | tee -a $WLAN_LOG USBIDS=`lsusb | awk {'print $6'}` if [ -f /etc/Wireless/wlan_module ]; then WLAN_MODULE=`cat /etc/Wireless/wlan_module | awk {'print $1'}` VID=`cat /etc/Wireless/wlan_module | awk {'print $2'}` PID=`cat /etc/Wireless/wlan_module | awk {'print $3'}` fi if [ -z $WLAN_MODULE ] || [ -z "`echo $USBIDS | grep $VID | grep $PID`" ]; then for i in $USBIDS; do VID=`echo $i | cut -d':' -f1` PID=`echo $i | cut -d':' -f2` WLAN_MODULE= for j in `cat /etc/Wireless/wlan.usbmap`; do if [ `echo $j | awk {'print $3'}` == 0x$VID ] && [ `echo $j | awk {'print $4'}` == 0x$PID ]; then WLAN_MODULE=`echo $j | awk {'print $1'}` break fi done [ ! -z $WLAN_MODULE ] && break done [ ! -z $WLAN_MODULE ] && echo $WLAN_MODULE $VID $PID > /etc/Wireless/wlan_module || rm -f /etc/Wireless/wlan_module fi [ -z $WLAN_MODULE ] && echo "[wlan] no applicable USB WLAN device found" | tee -a $WLAN_LOG && return IFS=$MEM echo "[wlan] loading $WLAN_MODULE.ko" | tee -a $WLAN_LOG insmod /var/swap/modules/$WLAN_MODULE.ko sleep 1 [ -z "`lsmod | grep $WLAN_MODULE`" ] && echo "[wlan] could not load $WLAN_MODULE" | tee -a $WLAN_LOG && return sleep 1 case $WLAN_MODULE in zd1211 | zd1211b ) WLAN_IF=ath0 WLAN_DRV=zydas ;; # rt73 ) # WLAN_IF=rausb0 # WLAN_DRV=ralink # ;; rt3070sta | rt3572sta ) WLAN_IF=ra0 WLAN_DRV=wext ;; * ) echo "[wlan] Unknown module $WLAN_MODULE" | tee -a $WLAN_LOG && return ;; esac ifconfig $WLAN_IF 0.0.0.0 up [ -z "`ifconfig | grep $WLAN_IF`" ] && rmmod $WLAN_MODULE && echo "[wlan] $WLAN_IF not ready" | tee -a $WLAN_LOG && return sleep 1 if [ -z "`cat /var/etc/network/interfaces | grep \"auto $WLAN_IF\"`" ]; then echo "[wlan] wireless interface $WLAN_IF not activated" | tee -a $WLAN_LOG python /var/etc/Wireless/wlanscan.pyc $WLAN_IF ifconfig $WLAN_IF down return fi if [ ! -f /etc/wpa_supplicant.conf ]; then echo "[wlan] wireless lan not yet configured" | tee -a $WLAN_LOG python /var/etc/network/wlanscan.pyc $WLAN_IF ifconfig $WLAN_IF down return fi fi if [ -z $WLAN_STARTMODE ] || [ $WLAN_STARTMODE == "load" ] || [ $WLAN_STARTMODE == "connect" ]; then rm -Rf /var/run/wpa_supplicant* AP_TRIES=20 AP=`cat /etc/wpa_supplicant.conf | grep ssid | grep -v scan_ssid | cut -d"=" -f2` echo "[wlan] starting wpa_supplicant ..." | tee -a $WLAN_LOG /var/bin/wpa_supplicant -B -i $WLAN_IF -P /var/run/wpa_supplicant.pid -D $WLAN_DRV -c /etc/wpa_supplicant.conf while [ $AP_TRIES -gt 0 ]; do AP_STATE=`/var/bin/wpa_cli -i $WLAN_IF -p /var/run/wpa_supplicant status | grep wpa_state | cut -d"=" -f2` [ "$AP_STATE" == "COMPLETED" ] && echo "[wlan] association with $AP completed" | tee -a $WLAN_LOG && break AP_TRIES=$((AP_TRIES-1)) sleep 1 done if [ $AP_TRIES -lt 1 ]; then case "$AP_STATE" in "SCANNING" ) echo -e "[wlan] access point $AP not found (scanning aborted...)" | tee -a $WLAN_LOG ;; * ) echo -e "[wlan] authentification to access point $AP failed" | tee -a $WLAN_LOG ;; esac python /var/etc/network/wlanscan.pyc $WLAN_IF kill -9 `cat /var/run/wpa_supplicant.pid` rm /var/run/wpa_supplicant.pid ifconfig $WLAN_IF down return fi python /var/etc/network/wlanscan.pyc $WLAN_IF startNetwork $WLAN_IF ( startWaitfor "/tmp/.networkready" 30 IP=`ifconfig $WLAN_IF | grep -m1 "inet addr" | sed s/"^\s*"// | sed s/" \+"/" "/g | cut -d " " -f2 | cut -d ":" -f2` NET=`echo ${IP%.*}` /var/bin/fping -l -b12 -q -i2000 -g $NET.1 $NET.254 2> /dev/null & echo "[wlan] completed, now checking recordshare by hotplug" | tee -a $WLAN_LOG /sbin/hotplug.sh checkRecordShare ) & else echo "[wlan] unknown wireless startmode $WLAN_STARTMODE" | tee -a $WLAN_LOG && break fi