#!/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