also try configuring ad-hoc after interface is up, if not already in ad-hoc mode...
[olsrd.git] / files / olsrd-adhoc-setup
1 #!/bin/sh
2
3 channel=7
4 essid=olsr.org
5 bssid=CC:CC:CC:CC:CC:CC
6
7 if [ "$1" = "" ]; then
8     wlan=`/sbin/iwconfig 2>&1 | grep 'IEEE 802.11' | head -1 | cut -d ' ' -f 1`
9 else
10     wlan=$1
11 fi
12
13 if [ "$wlan" = "" ]; then
14     echo "No wifi network interface found! Perhaps you need to modprobe?"
15     exit
16 fi
17
18 # ifconfig down before setting ad-hoc mode because some chips require that
19 /sbin/ifconfig $wlan down
20
21 /sbin/iwconfig $wlan mode ad-hoc
22 /sbin/iwconfig $wlan ap $bssid
23 /sbin/iwconfig $wlan channel $channel
24 /sbin/iwconfig $wlan essid $essid
25 /sbin/iwconfig $wlan key off
26 /sbin/iwconfig $wlan rate auto
27 /sbin/iwconfig $wlan txpower auto
28 # many devices don't support the follow options so hide the errors
29 /sbin/iwconfig $wlan modu auto  > /dev/null 2>&1
30 /sbin/iwconfig $wlan commit     > /dev/null 2>&1
31
32 /sbin/ifconfig $wlan up
33
34 # some cards what to be configured after the interface is up
35 sleep 5
36 mode=`iwgetid --mode --raw`
37 if [ "$mode" != "1" ]; then
38     /sbin/iwconfig $wlan mode ad-hoc
39     /sbin/iwconfig $wlan ap $bssid
40     /sbin/iwconfig $wlan channel $channel
41     /sbin/iwconfig $wlan essid $essid
42     /sbin/iwconfig $wlan commit     > /dev/null 2>&1
43 fi
44
45 # get MAC to generate hopefully unique IP address with, by using the last two
46 # hex pairs as the last two hex pairs for the IP address, converting the hex
47 # to decimal first.  Wait for things to settle before trying.
48 sleep 2
49 MAC=`/sbin/ifconfig | grep wlan0 | sed 's|.*HWaddr ||'`
50 MAC5=`echo $MAC | cut -d : -f 5`
51 MAC6=`echo $MAC | cut -d : -f 6`
52 ip3=`printf %d 0x$MAC5`
53 ip4=`printf %d 0x$MAC6`
54 net=172.29
55 ip=$net.$ip3.$ip4
56
57 /sbin/ifconfig $wlan inet $ip broadcast $net.255.255
58 echo "OLSR ad-hoc setup on $wlan using $essid/$bssid on channel $channel with IP $ip"