]> git.donarmstrong.com Git - bin.git/blob - cycle_wireless
add common subscriber
[bin.git] / cycle_wireless
1 #!/bin/sh
2
3 WIRELESS="$1"
4
5 # First try a minor cycle
6
7 ESSID=$(/sbin/iwconfig "$WIRELESS" 2>/dev/null |grep ESSID |perl -ne 'm/\"([^\"]+)\"/ && print $1,qq(\n)')
8
9 if [ -n "$ESSID" ]; then
10     sudo iwconfig "$WIRELESS" essid "$ESSID"
11     sleep 1s;
12     if /sbin/iwconfig "$WIRELESS" 2>/dev/null | grep 'Bit Rate'|grep -qv '=1 Mb/s'; then
13         exit 0
14     fi;
15 fi;
16
17 # Failure, so major cycle
18 sudo ifdown wireless;
19 if [ "$WIRELESS" == "wireless" ]; then
20     if lsmod|grep -q bcm43xx; then
21         sudo modprobe -r bcm43xx;
22         sudo modprobe bcm43xx;
23     else
24         sudo modprobe -r b43;
25         sudo modprobe b43;
26     fi;
27     sleep 2s;
28 fi;
29 sudo ifup "wireless";