155 lines
3.9 KiB
Bash
Executable File
155 lines
3.9 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
TRY=0
|
|
HOSTAPD=`ps`
|
|
AMPK_AP=0
|
|
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 channel=6 >> /var/run/hostapd.conf
|
|
echo driver=nl80211 >> /var/run/hostapd.conf
|
|
echo wmm_enabled=1 >> /var/run/hostapd.conf
|
|
/usr/bin/hostapd /var/run/hostapd.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.254
|
|
break
|
|
fi
|
|
done
|
|
|
|
udhcpd /etc/udhcpdw.conf
|
|
TRY=0
|
|
while [ 1 ]
|
|
do
|
|
DHCP=`ps`
|
|
DHCP=`echo $DHCP | grep udhcpd`
|
|
echo "DHCP=$DHCP"
|
|
|
|
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 -Dnl80211 -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
|