Getting a BCM94321MC WiFi card working under Ubuntu 9.04 with ndiswrapper
I recently ripped the WiFi card out of my AppleTV in order to replace it with a Broadcom Crystal HD card, for use with XBMC. I decided to put this WiFi card into my Asus eee 1000HA, as it's an 802.11n capable card, a step up from what comes stock in the Asus.
My 1000HA is running Ubuntu. So according to the AppleTV modders at awkwardTV, the way to get this card working under Linux is to use a Dell driver. I loaded this driver into ndiswrapper without a hitch however iwconfig still did not report a wlan0 device, no matter what I tried. (Linux reports this card as a BCM4321 for some reason.)
In the end, it turns out that there's a bug in Ubuntu, where the ssb module loads first and takes control of the WiFi card away from ndiswrapper. Contrary to many of the threads I saw, blacklisting ssb via /etc/modprobe.d/blacklist.conf is not a solution, as USB functionality relies on this. The fix is as simple as ensuring that the ndiswrapper module gets loaded before ssb. I went with levmatta's suggested workaround in this thread, creating the following file: /etc/init.d/ndiswrapper -
#! /bin/shrmmod ssb
rmmod ssb
rmmod ndiswrapper
modprobe ndiswrapper
modprobe ssb
Setting it's permissions:
sudo chmod 755 /etc/init.d/ndiswrapper
Then ensuring it executes at startup:
sudo ln -s /etc/init.d/ndiswrapper /etc/rc2.d/S99ndiswrapper
Ugly, but it works.
Comments
No Comments for this post yet...
Leave a comment
Allowed XHTML tags: <p, ul, ol, li, dl, dt, dd, address, blockquote, ins, del, span, bdo, br, em, strong, dfn, code, samp, kdb, var, cite, abbr, acronym, q, sub, sup, tt, i, b, big, small>