Getting a BCM94321MC WiFi card working under Ubuntu 9.04 with ndiswrapper

Filed under: Linux — lars @ 10:57:46 pm

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.


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>

    (Line breaks become <br />)
    (Set cookies for name, email & url)

    powered by  b2evolution