Getting wireless working with kernel 2.6.30
I upgraded the kernel and lost wireless. Thought I had it working with the b43-fwcutter package. Turns out that doesn't support the BCM4312 in this guy. What I needed was broadcom-sta-modules-2.6-686. Then I needed to rmmod b43 and modprobe wl. Oh, and also modprobe lib80211_crypt_tkip. But not in that order. So altogether it goes:
# apt-get install broadcom-sta-modules-2.6-686
...
# modprobe -r b43
# modprobe lib80211_crypt_tkip
# modprobe wl
Problem was I had to do the modprobe business every time I rebooted. I added
b43 to the /etc/modprobe.d/blacklist.conf and added lib80211_crypt_tkip and wl
to /etc/modules, but ifconfig still revealed no eth1 interface at boot. I ran
depmod. I removed the b43-fwcutter package. Nothing changed. I even tried
removing b43.ko from the kernel drivers. Thereafter, modprobe -r b43 would
complain that it wasn't found, as it should, but no amount of modprobing wl or
otherwise would bring up the eth1 interface until I returned b43.ko to its
rightful place.
Finally, this Ubuntu forum prompted me to try the following for /etc/modprobe.d/wl.conf:
install wl /sbin/modprobe -r b43; /sbin/modprobe lib80211_crypt_tkip; /sbin/modprobe --ignore-install wl
That made modprobe wl work to bring up the eth1 interface. I put wl back in
/etc/modules (having removed it by then) and wireless finally worked again at
boot.
Update 2010-02-11: There's no broadcom-sta-modules
for 2.6.32, so I installed broadcom-sta-source, and
/usr/share/doc/broadcom-sta-source/README.Debian told me I should use
b43-fwcutter instead. Once I fetched and extracted the firmware and ran
modprobe b43, however, I started getting b43-phy0 ERROR: Fatal DMA error
messages, so I went back to broadcom-sta and ran the module-assistant commands
suggested in that README. The broadcom-sta-common package created
/etc/modprobe.d/broadcom-sta-common.conf with the following:
$ cat /etc/modprobe.d/broadcom-sta-common.conf
# wl module from Broadcom conflicts with ssb
# We must blacklist the following modules:
blacklist b44
blacklist b43legacy
blacklist b43
blacklist ssb
install wl /sbin/modprobe lib80211_crypt_tkip; /sbin/modprobe --ignore-install wl $CMDLINE_OPTS
$
Except I inserted the bit about lib80211_crypt_tkip. It didn't work before I did that.