owlps/owlps-ardrone/script-drone/1.6.6/bin/wifi_adhoc.sh

128 lines
3.0 KiB
Bash
Executable File

#!/bin/sh
#
# Script to see if an IP adress is already used or not
#
# Getting SSID from config.ini file.
#initializing random generator
cat /data/random_mac.txt > /dev/urandom
/bin/random_mac > /data/random_mac.txt
#echo 2 > /proc/cpu/alignment
#export WORKAREA=/
#export ATH_PLATFORM=ardrone
#/usr/sbin/recEvent /data/athdbg.log&
if [ -s /factory/mac_address.txt ]
then
MAC_ADDR=`cat /factory/mac_address.txt`
else
MAC_ADDR=`cat /data/random_mac.txt`
fi
loadAR6k.sh --setmac $MAC_ADDR
#loadtestcmd.sh
# Waiting 2s for the wifi chip to be ready
sleep 2
# Increasing scan time to help detecting wifi networks
wmiconfig -i ath0 --scan --maxact=80
# Setting retry limits to 6
wmiconfig -i ath0 --setretrylimits 2 0 6 off
# Limiting available rates to 11, 24 or 54 Mb/s
wmiconfig -i ath0 --setfixrates 3 8 11
# Disabling powersaving
wmiconfig -i ath0 --power maxperf
SSID=`grep ssid_single_player /data/config.ini | awk -F "=" '{print $2}'`
# Removing leading and trailing spaces
SSID=`echo $SSID`
if [ -n "$SSID" ]
then
echo "SSID=$SSID"
else
#default SSID.
SSID=ardrone_wifi
echo "SSID=\"$SSID\""
fi
export NETIF=ath0
RANDOM_CHAN=`/bin/channelselector`
echo "Create/Join Ad-Hoc Network $SSID"
#iwconfig ath0 mode ad-hoc
#iwconfig ath0 channel $RANDOM_CHAN
#iwconfig ath0 essid "$SSID"
iwconfig ath0 mode ad-hoc essid owl_2 channel auto
OK=0
BASE_ADRESS=192.168.1.
PROBE=1
while [ $OK -eq 0 ]
do
#configuring interface.
ifconfig ath0 $BASE_ADRESS$PROBE
ifconfig ath0:0 192.168.11.1
arping -I ath0 -q -f -D -w 2 $BASE_ADRESS$PROBE
if [ $? -eq 1 ]
then
if [ -s /data/old_adress.txt ]
then
# Testing previously given adress.
PROBE=`cat /data/old_adress.txt`
else
#generating random odd IP address
PROBE=`/bin/random_ip`
fi
/bin/random_ip > /data/old_adress.txt
else
echo $PROBE > /data/old_adress.txt
OK=1
fi
done
#Configuring DHCP server.
echo "Using address $BASE_ADRESS$PROBE"
echo "start $BASE_ADRESS`expr $PROBE + 1`" > /tmp/udhcpd.conf
echo "end $BASE_ADRESS`expr $PROBE + 4`" >> /tmp/udhcpd.conf
echo "interface ath0" >> /tmp/udhcpd.conf
echo "decline_time 1" >> /tmp/udhcpd.conf
echo "conflict_time 1" >> /tmp/udhcpd.conf
echo "opt subnet 255.255.255.0" >> /tmp/udhcpd.conf
#echo "opt router $BASE_ADRESS$PROBE" >> /tmp/udhcpd.conf
echo "opt lease 1200" >> /tmp/udhcpd.conf
/bin/pairing_setup.sh
# Saving random info for initialization at next reboot
date > /dev/urandom
/bin/random_mac > /data/random_mac.txt
iwconfig ath0 rate 54M
iwconfig ath0 rate auto
telnetd -l /bin/sh
udhcpd /tmp/udhcpd.conf
#diversity&
# Adding route for multicast-packet
# note : ! should be runned after hostapd is initialized !
route add -net 224.0.0.0 netmask 240.0.0.0 dev ath0
#Adding routing table iptable
iptables -t nat -A POSTROUTING -p UDP --sport 8884 -j SNAT --to 192.168.1.254:5554
iptables -t nat -A PREROUTING -p UDP -d 192.168.1.254 --dport 5554 -j DNAT --to 192.168.1.1:8884
iptables -t nat -A POSTROUTING -p UDP --sport 8886 -j SNAT --to 192.168.1.254:5556
optables -t nat -A PREROUTING -p UDP -d 192.168.1.254 --dport 5556 -j DNAT --to 192.168.1.1:8886