Broadcom Guide for Ubuntu

As of Hardy (8.04), there are now three different versions of wireless modules that will work for the Broadcom PCI cards. They are the open source b43 module, the Broadcom STA (wl) module, and the NDISwrapper module. All three options work to a varying degree in Ubuntu. The question is which one should you use? The answer is–it depends. There is no real “perfect” answer for this. Some people prefer to use only open source so they will lean towards the b43 driver. Some will choose anything that works but is not Microsoft dependent so they might choose the b43 or wl module. Some just want to see their card work so they will use any of them.

In the past, NDISwrapper was the most reliable module to use because it relied on the Windows driver to make it work. Once you were able to find the right Windows driver, your wireless card worked better than the open source b43 module. However today all three drivers work pretty well but each have their own little quirks.

b43
The b43 or b43legacy (for the 4306 rev 02, 4301, 4303 cards, and some 4309 cards) is the module that comes with the Linux kernel. However, the module does need some help from a proprietary firmware file so the module will not work “out of the box”. In order to make it work, an application called b43-fwcutter needs to be installed, the firmware file downloaded, then execute the b43-fwcutter commands to extract the firmware portions it needs. Once that is done, reloading the modules or restarting the computer will activate the card.

A lot of progress has been made by the b43 developers and to learn more about it, please visit their site at http://www.linuxwireless.org/en/users/Drivers/b43

NDISwrapper

The NDISwrapper module is an open source module, but it “wraps” Windows NDIS drivers in Linux.  This means that it can provide some hardware functionality by using some Windows drivers.  The Broadcom wireless cards use NDIS drivers in Windows so NDISwrapper is able to wrap those drivers in Linux and make the wireless cards work.  At this time, only XP and older drivers work with NDISwrapper.  There has been research done to get the Vista drivers to work, but the status of it is currently unknown.  To make this work, you can compile the NDISwrapper source code or install ndiswrapper-utils-* and download the Windows wireless driver (bcmwl5.inf and bcmwl5.sys or bcmwl564.sys).  Once the NDISwrapper application is installed, you will need to blacklist the conflicting wireless drivers, enable the NDISwrapper module, and wrap the Windows driver.  Once that is complete, you can load the NDISwrapper module and it should be ready!  Sounds confusing?  It can be.  To make things more complicated, there is also a Broadcom wired ethernet card that can also cause conflicts with NDISwrapper.  If you have that card, you will have to remove the module for that card, load ndiswrapper, then load the wired card module back.

Why is it so complicated?  It is because of how the ssb module works.  The b43 and b44 (the wired card module) need the ssb module to make the wireless card work.  However, once the ssb module is loaded, it will take over all the cards that need it and it won’t share.  Fortunately, there are scripts that can be created to automate this so that you don’t have to do this every time just to make your wireless and wired card work.

Broadcom STA (wl)

This is the newest module on the block.  It was created by Broadcom to help support some or their Broadcom cards.  In Ubuntu, the module only supported the 4312 (Formerly known as 4310 in Ubuntu 8.04) 14e4:4315 card.  It worked well, but was not able to handle some remote connections.  Once 2.6.24-21 came around (when 8.04.1 was released), it was able to support the 4311, 4312, 4321, 4322, and some 4328 cards.  In Hardy, this driver worked better than the b43 driver and in some cases, better than NDISwrapper.  Patches have been made to the wl module in Ubuntu, but it seemed to cause some issues with WEP/WPA connections.  To activate the card in Ubuntu, all you have to do is go into System->Administration->Hardware Drivers and activate the Broadcom STA card and make sure that the b43 version is not enabled.  Once that is done, it should be ready to go!  However, it does have the same problem as NDISwrapper that if you have the Broadcom wired card that uses the b44 module, you will need to load the wl module before the ssb module is loaded.  Once again a script can be created to automate this process.

Listed in the table below is some information that I have seen through http://ubuntuforums.org/. Hopefully it will help you in picking out a module that will work best for you.

Card Hardy b43 Hardy NDISwrapper
Hardy wl
Intrepid b43
Intrepid NDISwrapper
Intrepid wl
4303 maybe (b43legacy b only cards) maybe No maybe (b43legacy b only cards) maybe No
4306 rev 02
Worked better with bcm43xx (depreciated driver) Not Known No maybe (b43legacy) Not Known No
4306 rev 03
Yes Yes No Some Some No
4309 maybe (2.4Ghz only though) maybe No maybe (2.4Ghz only though) maybe No
4311 rev 01
Yes Yes Yes Yes Yes Yes
4311 rev 02
Only after 8.04.1 (2.6.24-21) Yes Yes Yes Yes Yes
4312 rev 01 (14e4:4315) No Yes Yes (some problems with WEP/WPA) No Yes Yes (some problems with WEP/WPA)
4312 rev 02
Only after 8.04.1 (2.6.24-21) Yes Yes Yes Yes Yes
4321 No Yes Yes No Yes Yes
4322 No Yes Yes No Yes Yes
4328 No Yes Maybe No Yes Maybe
Card Jaunty b43 Jaunty NDISwrapper
Jaunty wl
Karmic b43
Karmic NDISwrapper
Karmic wl
4303 maybe (b43legacy b only cards) maybe No No
4306 rev 02
Worked better with bcm43xx (depreciated driver) Not Known No No
4306 rev 03
Yes Yes No No
4309 maybe (2.4Ghz only though) maybe No No
4311 rev 01
Yes Yes Yes
4311 rev 02
Yes Yes Yes
4312 rev 01 (14e4:4315) No Yes Yes (some problems with WEP/WPA) No
4312 rev 02
Yes Yes Yes
4321 No Yes Yes No
4322 No Yes Yes No
4328 No Yes Maybe No Yes

Guide for installing b43

System->Administration->Hardware Drivers Enable Broadcom b43 and disable Broadcom STA

No internet connection?

Here is a guide on what to download and install in Ubuntu Hardy:

http://ubuntuforums.org/showthread.php?t=779754 and look at “Option 2 For those without a working internet connection”

For Ubuntu Intrepid and newer:

http://ubuntuforums.org/showpost.php?p=6077792&postcount=72

Guide for installing Broadcom STA:

System->Administration->Hardware Drivers Enable Broadcom STA and disable Broadcom b43

Guide to Compiling and Using the Broadcom STA Module
Under Construction

Guide for installing NDISwrapper:

https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx/Feisty_No-Fluff