nt9856x/code/lib/source/WiFiIpc/scripts/8189ftv/up.sh

186 lines
4.7 KiB
Bash
Executable File

#!/bin/sh
TRY=0
HOSTAPD=`ps`
HOSTAPD=`echo $HOSTAPD | grep hostapd`
if [ -n "$HOSTAPD" ]; then
echo "hostapd is running. Try to stop it"
killall -9 hostapd
while [ 1 ]
do
HOSTAPD=`ps`
HOSTAPD=`echo $HOSTAPD | grep hostapd`
if [ -n "$HOSTAPD" ]; then
if [ $TRY -gt 5 ]; then
echo "can't stop hostapd"
exit 255
else
echo "TRY=$TRY"
TRY=$((${TRY}+1))
sleep 1
fi
else
echo "hostapd is stopped"
break
fi
done
fi
TRY=0
WPA=`ps`
WPA=`echo $WPA | grep wpa_supplicant`
if [ -n "$WPA" ]; then
echo "wpa_supplicant is running. Try to stop it"
killall -9 wpa_supplicant
while [ 1 ]
do
WPA=`ps`
WPA=`echo $WPA | grep wpa_supplicant`
if [ -n "$WPA" ]; then
if [ $TRY -gt 5 ]; then
echo "can't stop wpa_supplicant"
exit 255
else
echo "TRY=$TRY"
TRY=$((${TRY}+1))
sleep 1
fi
else
echo "wpa_supplicant is stopped"
break
fi
done
fi
if [ "$1" == "ap" ]; then
echo ieee80211n=1 >> /var/run/hostapd.conf
echo driver=nl80211 >> /var/run/hostapd.conf
echo ctrl_interface=/var/run/hostapd >> /var/run/hostapd.conf
echo ctrl_interface_group=0 >> /var/run/hostapd.conf
echo ignore_broadcast_ssid=0 >> /var/run/hostapd.conf
echo auth_algs=1 >> /var/run/hostapd.conf
echo beacon_int=100 >> /var/run/hostapd.conf
echo dtim_period=1 >> /var/run/hostapd.conf
echo preamble=0 >> /var/run/hostapd.conf
echo wpa_key_mgmt=WPA-PSK >> /var/run/hostapd.conf
#echo channel=6 >> /var/run/hostapd.conf
if [ "$2" == "0" ]; then
ifconfig wlan0 up
iwlist wlan0 scanning > /dev/null
READFILE=/proc/net/rtl8189fs/wlan0/best_channel
best_cnt=99
best_channel=1
while read line; do
channel=$(echo $line | cut -d" " -f 6)
cnt=$(echo $line | cut -d" " -f 8)
if [ "$cnt" != "" ]; then
if [ $cnt -le $best_cnt ]; then
if [ $channel -le 11 ]; then
best_cnt=$cnt
best_channel=$channel
fi
fi
fi
done < $READFILE
echo channel=$best_channel >> /var/run/hostapd.conf
else
echo channel=$2 >> /var/run/hostapd.conf
fi
hostapd /var/run/hostapd.conf &
TRY=0
while [ 1 ]
do
UP=`ifconfig wlan0 | grep UP`
if [ -z "$UP" ]; then
echo "TRY=$TRY"
if [ $TRY -gt 5 ]; then
hostapd stop
exit 255
else
TRY=$((${TRY}+1))
sleep 1
fi
else
echo "UP ok"
ifconfig wlan0 192.168.1.254
break
fi
done
udhcpd /etc/udhcpdw.conf
TRY=0
while [ 1 ]
do
DHCP=`ps`
DHCP=`echo $DHCP | grep udhcpd`
if [ -z "$DHCP" ]; then
echo "TRY=$TRY"
if [ $TRY -gt 5 ]; then
echo "Can't run udhcpd"
exit 255
else
TRY=$((${TRY}+1))
sleep 1
fi
else
echo "udhcpd ok"
exit 0
fi
done
elif [ "$1" == "sta" ]; then
wpa_supplicant -i wlan0 -c /var/run/wpa_supplicant.conf &
TRY=0
while [ 1 ]
do
UP=`ifconfig wlan0 | grep UP`
echo "UP=$UP"
if [ -z "$UP" ]; then
echo "TRY=$TRY"
if [ $TRY -gt 5 ]; then
hostapd stop
exit 255
else
TRY=$((${TRY}+1))
sleep 1
fi
else
echo "UP ok"
ifconfig wlan0 192.168.1.1
break
fi
done
udhcpc -i wlan0
TRY=0
while [ 1 ]
do
DHCP=`ps`
DHCP=`echo $DHCP | grep udhcpc`
echo "DHCP=$DHCP"
if [ -z "$DHCP" ]; then
echo "TRY=$TRY"
if [ $TRY -gt 5 ]; then
echo "Can't run udhcpc"
exit 255
else
TRY=$((${TRY}+1))
sleep 1
fi
else
echo "udhcpd ok"
exit 0
fi
done
fi
exit 255