updated Linux ad-hoc setup script to associate to existing cells rather than only...
authorHans-Christoph Steiner <hans@eds.org>
Fri, 13 Apr 2012 20:50:13 +0000 (16:50 -0400)
committerHans-Christoph Steiner <hans@eds.org>
Sat, 5 May 2012 17:10:53 +0000 (13:10 -0400)
files/olsrd-adhoc-setup

index b00e2eb..133c389 100755 (executable)
@@ -2,7 +2,12 @@
 
 channel=7
 essid=olsr.org
-bssid=CC:CC:CC:CC:CC:CC
+
+if [ -x /usr/bin/nmcli ]; then
+       echo -n "Turning off NetworkManager wifi control: "
+    /usr/bin/nmcli nm wifi off
+    echo "done"
+fi
 
 if [ "$1" = "" ]; then
     wlan=`/sbin/iwconfig 2>&1 | grep 'IEEE 802.11' | head -1 | cut -d ' ' -f 1`
@@ -15,11 +20,18 @@ if [ "$wlan" = "" ]; then
     exit
 fi
 
+
+echo -n "Setting up ad-hoc networking: "
+
 # ifconfig down before setting ad-hoc mode because some chips require that
 /sbin/ifconfig $wlan down
 
+# disassociate from current BSSID in case an ad-hoc BSSID already stuck there
+/sbin/iwconfig $wlan ap 00:00:00:00:00:00
+
+sleep 1
+
 /sbin/iwconfig $wlan mode ad-hoc
-/sbin/iwconfig $wlan ap $bssid
 /sbin/iwconfig $wlan channel $channel
 /sbin/iwconfig $wlan essid $essid
 /sbin/iwconfig $wlan key off
@@ -32,20 +44,23 @@ fi
 /sbin/ifconfig $wlan up
 
 # some cards what to be configured after the interface is up
-sleep 5
+sleep 4
 mode=`iwgetid --mode --raw`
 if [ "$mode" != "1" ]; then
     /sbin/iwconfig $wlan mode ad-hoc
-    /sbin/iwconfig $wlan ap $bssid
     /sbin/iwconfig $wlan channel $channel
     /sbin/iwconfig $wlan essid $essid
     /sbin/iwconfig $wlan commit     > /dev/null 2>&1
 fi
 
+# Wait for things to settle before trying the next step
+sleep 2
+echo "done"
+
+echo -n "Setting up IP address: "
 # get MAC to generate hopefully unique IP address with, by using the last two
 # hex pairs as the last two hex pairs for the IP address, converting the hex
-# to decimal first.  Wait for things to settle before trying.
-sleep 2
+# to decimal first.
 MAC=`/sbin/ifconfig | grep wlan0 | sed 's|.*HWaddr ||'`
 MAC5=`echo $MAC | cut -d : -f 5`
 MAC6=`echo $MAC | cut -d : -f 6`
@@ -55,4 +70,7 @@ net=172.29
 ip=$net.$ip3.$ip4
 
 /sbin/ifconfig $wlan inet $ip broadcast $net.255.255
-echo "OLSR ad-hoc setup on $wlan using $essid/$bssid on channel $channel with IP $ip"
+echo "done"
+
+echo "OLSR ad-hoc setup on $wlan using $essid on channel $channel with IP $ip"
+echo "    ad-hoc Cell BSSID: `iwgetid --ap --raw`"