| #!/bin/bash |
| # |
| # Copyright 2007 Luis R. Rodriguez <mcgrof@winlab.rutgers.edu> |
| # |
| # Makes sure either b43, b43legacy (new mac80211 drivers) or bcm43xx |
| # is enabled to be used. This allows us to choose any driver without |
| # blacklisting each other. |
| |
| . /usr/lib/compat-wireless/modlib.sh |
| |
| if [[ $UID -ne 0 ]]; then |
| echo "Run with root privileges" |
| exit |
| fi |
| |
| B43S="b43 b43legacy" |
| B43_OLD="bcm43xx" |
| B43_PROP="wl" |
| |
| # Appended to module file at the end when we want to ignore one |
| USAGE="Usage: $0 [ b43 | bcm43xx | wl ]" |
| |
| function enable_b43 { |
| module_disable $B43_OLD |
| module_disable $B43_PROP |
| for i in $B43S; do |
| module_enable $i |
| done |
| } |
| |
| # Default behavior: disables the old bcm43xx driver and enables b43 |
| # and b43legacy |
| if [ $# -eq 0 ]; then |
| enable_b43 |
| exit |
| elif [ $# -ne 1 ]; then |
| echo "$USAGE" |
| exit |
| fi |
| |
| MODULE=$1 |
| if [ "$MODULE" == "bcm43xx" ]; then |
| for i in $B43S; do |
| module_disable $i |
| done |
| module_disable $B43_PROP |
| module_enable $B43_OLD |
| elif [ "$MODULE" == "wl" ]; then |
| for i in $B43S; do |
| module_disable $i |
| done |
| module_disable $B43_OLD |
| module_enable $B43_PROP |
| elif [ "$MODULE" == "b43" ]; then |
| enable_b43 |
| else |
| echo "$USAGE" |
| exit |
| fi |