Finally I was able to replace the b43 driver with a native one from Broadcom. It took a while to get it right but the reward is appealing: my signal quality has dramatically improved since then!
Here were the steps that I took, it look rather similar to this guide (in fact I followed his instructions!): http://djkaos.wordpress.com/2008/10/25/installing-broadcom-80211-linux-sta-driver/
A)
1) Get the stock kernel header: http://mirror-fpt-telecom.fpt.net/slackware/slackware-12.2/slackware/k/kernel-source-2.6.27.7_smp-noarch-1.tgz
You can get it via slackpkg install though.
2) Creat a directory with any name (Broadcom for example). Depending on your system download 32 or 64 bit package
from http://www.broadcom.com/support/802.11/linux_sta.php to the newly-created dir.
3) Go to a terminal to the dir with package.
4) tar -xvzf hybrid-portsrc-.tar.gz
Replace version with one you have
5) make -C /lib/modules/`uname -r`/build M=`pwd`
if There were no errors
6) Unload Modules from memory
rmmod ndiswrapper b43 ssb bcm43xx b43legacy
7) For WPA
modprobe ieee80211_crypt_tkip
8)Check if Compiled Module is working
insmod wl.ko
Now Probably a new interface will be there for wireless (wlan0 or eth-1)
To check it run
iwconfig
iwlist scanning
Mine’s on eth1, not wlan0. This is important to know though.
B) Getting it to work with Wicd
I couldn’t get my wifi to work with Wicd in my first attempt because Wicd didn’t detect the connection. Obviously I needed to take one further step of changing the wireless interface from the default wlan0 to eth1 according to the scanning result above. Go to Wicd’s Preferences and change yours.
C) Getting it to work at boot:
1)cp wl.ko /lib/modules/2.6.27.7-smp/kernel/net/wireless/
2)depmod -a
3)rmmod wl
4)modprobe wl
5)Add following Lines to /etc/rc.local (in openSuse /etc/rc/rc.d/boot.local)
modprobe wl
6)Blacklist the b43 module family:
Add the foolowing Lines to /etc/modprobe.d/blacklist
blacklist ndiswrapper
blacklist b43
blacklist ssb
blacklist bcm43xx
blacklist b43legacy
Done!
Pingback: Is Broadcom bcm4313 supported by Slackware?