| #!/bin/bash |
| # Copyright 2007 Luis R. Rodriguez <mcgrof@winlab.rutgers.edu> |
| # |
| # Loads new broadcom drivers (b43 and b43legacy) or the old ones (bcm43xx) |
| |
| . /usr/lib/compat-wireless/modlib.sh |
| |
| if [[ $UID -ne 0 ]]; then |
| echo "Run with root privileges" |
| exit |
| fi |
| |
| |
| USAGE="Usage: $0 [ b43 | bcm43xx ]" |
| |
| # Default behavior: unload bcm43xx and load b43 and b43legacy |
| if [ $# -eq 0 ]; then |
| 1=b43 |
| elif [ $# -ne 1 ]; then |
| echo "$USAGE" |
| exit |
| fi |
| |
| MODULE=$1 |
| if [ "$MODULE" == "b43" ]; then |
| grep bcm43xx /proc/modules 2>&1 > /dev/null |
| if [ $? -eq 0 ]; then |
| echo Unloading $i... |
| modprobe -r --ignore-remove bcm43xx |
| fi |
| # Enables both b43 and b43legacy |
| b43enable b43 |
| modprobe b43 |
| modprobe b43legacy |
| CHECK=`modprobe -l b43` |
| if [ ! -z $CHECK ]; then |
| echo "b43 loaded successfully" |
| fi |
| CHECK=`modprobe -l b43legacy` |
| if [ ! -z $CHECK ]; then |
| echo "b43legacy loaded successfully" |
| fi |
| elif [ "$MODULE" == "bcm43xx" ]; then |
| CHECK=`modprobe -l b43` |
| if [ ! -z $CHECK ]; then |
| echo "b43 currently loaded, going to try to unload the module..." |
| modprobe -r --ignore-remove b43 |
| fi |
| CHECK=`modprobe -l b43legacy` |
| if [ ! -z $CHECK ]; then |
| echo "b43legacy currently loaded, going to try to unload the module..." |
| modprobe -r --ignore-remove b43legacy |
| fi |
| b43enable bcm43xx |
| # bcm43xx may be loaded already lets remove them first |
| modprobe -r --ignore-remov bcm43xx 2>&1 > /dev/null |
| modprobe bcm43xx |
| CHECK=`modprobe -l bcm43xx` |
| if [ ! -z $CHECK ]; then |
| echo "bcm43xx loaded successfully!" |
| fi |
| else |
| echo "$USAGE" |
| exit |
| fi |