The Broadcom Wireless Card Guide

Introduction: Unfortunately, most Broadcom wireless cards need proprietary firmware to get connected; many major distributions make it easy to get this firmware, but the tools they bundle need an Internet connection to get it, which is not always possible. Most tutorials currently online also assume you have a working Internet connection already, but this one will give you instructions on how to install the drivers manually. Don’t worry, it’s not that hard. 😀

Step 1: find out what card you have.
There are lots of Broadcom cards out there. To find out what yours is, open a terminal and type or copy-paste (use right-click > Paste to paste into terminals) the following for Ubuntu and Debian:
sudo lspci -vnn | grep 14e4
Or the following for Fedora and others:
su -c "lspci -vnn | grep 14e4"
The result should be something like this:
02:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11b/g LP-PHY [14e4:4315] (rev 01)
From this, you need the PCI ID, which has been italicized in the sample above. Now look up your PCI ID in the following table:

PCI ID Chip Driver(s) Notes
14e4:4301 BCM4303 b43legacy
14e4:4306 BCM4306 rev. 2 b43legacy Two IDs, same card (?)
14e4:4307 BCM4306 rev. 3 b43
14e4:4311 BCM4311 b43, wl
14e4:4312 BCM4312 b43 Unsure about this one
14e4:4313 BCM4313 b43, wl Unsure about this one
14e4:4315 BCM4312 b43, wl Requires LP/PHY firmware
14e4:4318 BCM4318 b43
14e4:4328 BCM4321 wl Two IDs, same card (?)
14e4:432b BCM4322 wl
14e4:4353 BCM43224 wl
14e4:4357 BCM43225 wl

Okay, that table above might confuse you, so let me explain. On the first column you get the PCI ID of the card, which you should already know. On the second column, you get the actual chip’s name. These are not the same as Product IDs (the part of the PCI ID after 14e4:); you can probably use those to verify that you have the right card. On the third column you have the drivers that support each card. You will need to pick one of them and install it; details lie below. And on the fourth column you have any notes related to the card.
If your card isn’t listed there, it probably doesn’t work. I recommend you check this page for more details, but watch out for conflicting information!

Step 2: Pick the right driver.
There are two major drivers for the current series of Broadcom cards, plus one for older cards and one in development (not mentioned here).

  1. Broadcom STA (also known as wl) is the official, Broadcom driver for a few cards typically found in Dell and HP laptops. It’s theoretically more stable than b43 and doesn’t need additional firmware, but it lacks some advanced features and is proprietary software.
  2. b43 is a free-as-in-freedom unofficial driver that requires, however, proprietary firmware to work. It offers a lot more features than wl and, in my experience, is also a lot faster. It can have some issues with new cards, but it should generally work.
  3. b43-legacy is a driver for older BCM43xx cards that don’t work with b43; it’s also free-as-in-freedom, but requires proprietary firmware.

Using this information and the table above, pick one of the drivers and skip to the relevant section…

Installing the Broadcom STA (wl) driver
Ubuntu: you’ll need to download the following packages (choose your Ubuntu release, architecture and mirror): dkms, patch, fakeroot and bcmwl-kernel-source.
After you’ve downloaded the .deb files, use a USB flashdrive or some other means of file transfer to get them on the computer you want to install to. Then, just double-clicking each file should bring up Ubuntu Software Center and let you install it.
Then just navigate to System > Administration > Additional Drivers (or Hardware Drivers for older releases) and activate the Broadcom STA driver.
Check out this page for more information about online installation, but please note that the offline installation instructions are pretty much outdated for wl.
Important note: if this fails, use Keryx (0.92, not 1.0) to do an offline upgrade and install the bcmwl-kernel-source package. An up-to-date Keryx tutorial is on my to-do list.
Other distributions: you can compile the STA driver yourself. 32-bit .tar.gz, 64-bit .tar.gz, readme. The readme explains how to compile the drivers pretty well, so I’m not going to do that here.

Installing the b43 driver (non-LP/PHY cards)
If your card’s PCI ID is 14e4:4315 (BCM4312 chip), you should use the instructions a little further down, since it’s a LP/PHY card.
Get b43-fwcutter: for Ubuntu, download and install b43-fwcutter (pick your version and architecture; direct link for the impatient). I believe it’s installed by default with openSUSE and Fedora, and possibly others. If your distribution doesn’t have it, download the tarball and compile it using the following commands (I recommend you only do this if you have some experience with the Linux shell):
tar xjf b43-fwcutter-013.tar.bz2
cd b43-fwcutter-013
cd ..

Unload the module: run this command: sudo modprobe -rv b43 ssb (or su -c "modprobe -rv b43 ssb" if you don’t have sudo installed or usable).
Get the firmware: you’ll need to download this package. Then open a Terminal, cd to where you downloaded it and run the following commands (substitute b43-fwcutter with the actual path to the b43-fwcutter executable if you compiled it yourself):
tar xjf broadcom-wl-
cd broadcom-wl-
sudo b43-fwcutter -w /lib/firmware wl_apsta_mimo.o

If you don’t have sudo installed or usable (just su), use this command instead:
su -c "b43-fwcutter -w /lib/firmware wl_apsta_mimo.o"
Finish up: I suggest you restart. You can probably get around with using sudo modprobe -v b43 on some distros (I usually do that on Ubuntu), but please, please, don’t ever run that command on openSUSE, you’ll just completely mess your system up and yell at me. On second thought, please just restart after installing.

Installing the b43 driver with LP/PHY firmware
This seems to only be relevant for BCM4312, which happens to be the card I have. First, you’ll need b43-fwcutter, which you can get using the instructions above. Then, get the correct firmware package and use these commands to install it:
sudo modprobe -rv b43 ssb
tar xjf broadcom-wl-
cd broadcom-wl-
sudo b43-fwcutter -w /lib/firmware wl_apsta.o

As usual, change sudo to su -c and put the rest in quotes if you don’t have sudo.
To finish up, restart your system.

Installing the b43legacy driver
Again, get b43-fwcutter as described above, then download this package and use the following command to install it:
sudo ./b43-fwcutter-013/b43-fwcutter -w /lib/firmware wl_apsta-
I don’t own any b43legacy-compatible card, so I’m not sure whether you need to unload the b43legacy module (using sudo modprobe -rv b43legacy before you install the firmware. I’d say you should do it, just to be sure, then restart after installing the firmware.

22 Responses to The Broadcom Wireless Card Guide

  1. Jay says:

    Hi Andy,

    I am completely new to Linux and I’ve been having issues with my Broadcom card. Its the same as the one you had for this example.

    Installing the b43 driver with LP/PHY firmware
    This seems to only be relevant for BCM4312, which happens to be the card I have. First, you’ll need b43-fwcutter, which you can get using the instructions above. Then, get the correct firmware package and use these commands to install it:
    sudo modprobe -rv b43 ssb
    tar xjf broadcom-wl-
    cd broadcom-wl-
    sudo b43-fwcutter -w /lib/firmware wl_apsta.o
    As usual, change sudo to su -c and put the rest in quotes if you don’t have sudo.
    To finish up, restart your system.

    I am using Linux Mint and followed the sudo instructions but the terminal just expressed no file by name in directory. Is there a folder I should be placing the driver into?

  2. Brittany D says:

    Not working for me. bcm4311 on Mint Cinnamon debian 3.11-2-amd64. Yes I rebooted. Still no WiFi modules listed under sudo iwconfig. I’m not sure what to do. Nothing else has worked.

  3. L lau says:

    Thanks Andy. This is great documentation on how to install the Broadcom drivers and activation. It works fine for me. Saves me hours of hard work.

  4. worked for me, a milllion thnx !!!! precise and better than ubuntu documentation !!

  5. PB says:

    Seem to be a tad stuck, I have a dell d600 clunker with linux mint 12. The crappy netgear wireless dongle I had been using successfully was toasted last week by TransmissionTorrent to the point where it needed reseating every 15mins so I thought I would have another go at getting the onboard Broadcom 4324 wireless going. When I followed your ‘su -c “modprobe -rv b43 ssb’ instruction my dongle went offline but the Broadcom is not online so it is wired-only for me for now. Is there a modprobe command to kick the b43 back into life? New to all this BTW

  6. Mark W says:

    Thanks alot! I just used this to get my Broadcom 1395 working with Debian 6.0.6 after probably 10 hours of frustration!

  7. John Henle says:

    Worked great on a Dell Latitude D630 with a Dell 1395 (BCM 4312 with LP/PHY firmware rev 01) under Linux Mint 12 LXDE. Took 3 days to find this post…

  8. Ernst says:

    Hi Andy,
    I installed debian (6.03) on a HP pavilion zv5000 but just can’t get to work the wireless card. It’s a broadcom bmc 4303 (14e4:4301 ; BCM4303). I followed your instructions for the b43legacy installation, but it doesn’ seem to work. The command iwconfig doesn’t find any wireless extensions… Do you have an idea what the problem could be? Do you need any more information?
    Thanks in advance!

  9. Kristoffer says:

    THANKS! i tryed everything exept Andycc’s guid! and now when i follow it my wireless card works like a sharm!

    THANK YOU ANDY!!! my hero!

  10. ITB says:

    Awesome tutorial. This helped me get the Wireless working on my Dell Inspiron 1300 that is running Joli OS 1.2. Although I had to use the Lucid build, it is now working great. Thank you.

  11. Pingback: Back to Fedora it is, then. « Andy C.'s weblog

  12. Dwayne says:

    Oh my God! Thank you so much, I have been on the Internet for 6 days trying to get this driver, and you helped me out so much. Again, thanks!!!

  13. Jim says:

    Thank you so much for this! I have close to zero experience with Linux, shell commands, and firmware and I was still able to follow your instructions and successfully configure my wireless card!

    I have a bcm4318 card (stock wlan card in an HP Pavilion dv4000 series laptop) that wasn’t recognized by Joli OS 1.2 (which is based on Ubuntu).

    Thank you again for wonderfully clear instructions!

  14. lukefrosty says:

    Fantastic post. Thank You so much for writing this. Brilliantly explained and completely solved my problem.

    I’d installed Joli OS onto a desktop PC and it would not recognise the BT Voyager PCI Network card, thought I was going to have to buy a USB dongle. This page solved the problem and now works perfectly.

    Thanks again, Luke 🙂

  15. Pingback: Hello again, openSUSE « Andy C.'s weblog

  16. Jim says:

    It worked like a charm! Thanks. This guide was really helpful.

  17. Merc1973 says:

    Great tutorial Andy! I appreciate you help on the Linux Mint forums too.

    Works perfectly for Mint 10 LXDE on my HP mini 1000. Only thing I did different is I used the deb package you sent instead of the tarball.

  18. Pingback: A mini-guide on the topic of Broadcom cards « Andy C.'s weblog

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s