Broadcom Wireless Network Cards in Ubuntu
Wireless cards manufactured by Broadcom are very common in laptops made by many manufacturers. Unfortunately, for legal reasons Ubuntu cannot include most of the required drivers in the default installation. You will have to download and install the drivers separately. However, Ubuntu makes this easy to do in most situations.
Drivers available in Ubuntu
This is an overview of the different drivers that you could install to begin using your wireless.
The proprietary driver that Broadcom provides, called 'wl,' is a good stable choice if it supports your chipset. Install either bcmwl-kernel-source (instructions below) OR the broadcom-sta (instructions at http://wiki.debian.org/wl) packages.
The open source driver also supports many of the same devices. It is called b43/b43legacy.
Another open-source driver that supports newer Broadcom devices is brcmsmac (a.k.a brcm80211)
rndis_wlan - Open source driver supporting wireless RNDIS chipsets
ndiswrapper - Use the Windows closed source drivers to activate your wifi card
Identifying Your Broadcom Chipset
Cards produced by Broadcom are supported by several different drivers. To find out which specific card you have, use the lspci command.
Open the Terminal and enter the following:
lspci -vvnn | grep 14e4
You will then see something like the following:
03:00.0 Network controller [0280]: Broadcom Corporation BCM4322 802.11a/b/g/n Wireless LAN Controller [14e4:432b] (rev 01)
You now know that
The chip ID is BCM4322
The PCI ID is [14e4:432b]
Next, go to the wireless support table at the kernel wiki. If your card is listed in green, you should install the b43/b43legacy drivers. If your card is not green, you can look for alternative drivers in the 'Alternatives' column.
Now that you know which driver to install, go to one of the sections below.
Installing the b43/b43legacy drivers.
10.04 (Lucid Lynx)
If you have internet access on the computer on which you are trying to install the drivers (for example, by using an Ethernet cable), it is easy to get your card up and running. There are two ways to install the driver.
Go to the application System > Administration > Hardware/Additional Drivers and activate the b43 driver. You need to restart for the changes to take effect.
- Issue the following commands in a terminal:
sudo apt-get update sudo apt-get install b43-fwcutter
If you are using the LiveCD version of Ubuntu and cannot restart without losing your work, enter these commands instead of rebooting (replacing b43 with b43legacy if needed):
sudo modprobe -r b43 ssb sudo modprobe b43
Allow several seconds for the network manager to scan for available networks before attempting a connection.
11.10 (Oneiric Ocelot) and later
Open a Terminal and update your package list:
sudo apt-get update
If you have a b43 card use the command
sudo apt-get install firmware-b43-installer
or, if you need the b43legacy driver, use:
sudo apt-get install firmware-b43legacy-installer
or, if you need a LP-PHY version (e.g BCM4312), use:
sudo apt-get install firmware-b43-lpphy-installer
You need to restart the computer for the changes to take effect.
Note: Since 11.10 the package linux-firmware-nonfree also contains b43 firmware (changelog). This may contain a different/newer version of the firmware depending on release.
No internet access
If you do not have any other means of Internet access from Ubuntu, then you will have to download the firmware from another computer with Internet access, from an existing OS on another partition, or before you install Ubuntu. You will also need the b43-fwcutter package which is usually included on the install media or can be downloaded from the official online repositories.
Install the b43-fwcutter package. This is usually located on the Ubuntu install media under /cdrom/pool/main/b/b43-fwcutter/ or you can download the binary '.deb' package by following the links on launchpad.
Double click on the package to install or in a Terminal issue the following commands:
cd /cdrom/pool/main/b/b43-fwcutter/ sudo dpkg -i b43-fwcutter*
On a computer with Internet access, download the required firmware file:
b43legacy - http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.o
b43 (10.04 Lucid Lynx) - http://mirror2.openwrt.org/sources/broadcom-wl-4.150.10.5.tar.bz2
b43 (12.04 Precise Pangolin) - http://mirror2.openwrt.org/sources/broadcom-wl-5.10.56.27.3_mipsel.tar.bz2
For the latest information on what files to download see http://wireless.kernel.org/en/users/Drivers/b43#Other_distributions_not_mentioned_above and http://wireless.kernel.org/en/users/Drivers/b43/developers .
Copy the downloaded file to your home folder. Open a new Terminal and use b43-fwcutter to extract and install the firmware:
b43legacy
sudo b43-fwcutter -w /lib/firmware wl_apsta-3.130.20.0.o
b43 (10.04 Lucid Lynx)
tar xfvj broadcom-wl-4.150.10.5.tar.bz2 sudo b43-fwcutter -w /lib/firmware broadcom-wl-4.150.10.5/driver/wl_apsta_mimo.o
b43 (12.04 Precise Pangolin)
tar xfvj broadcom-wl-5.10.56.27.3_mipsel.tar.bz2 sudo b43-fwcutter -w /lib/firmware broadcom-wl-5.10.56.27.3/driver/wl_apsta/wl_prebuilt.o
Under the desktop menu System > Administration > Hardware/Additional Drivers, the b43 drivers can be activated for use. A computer restart may be required before using the wifi card. For temporary use with the LiveCD and LiveUSB environments, in a terminal issue the following commands (replace b43 with b43legacy where appropriate):
sudo modprobe -r b43 ssb sudo modprobe b43
Allow several seconds for the network manager to scan for available networks before attempting a connection.
Installing wl (STA) drivers
If you have some other kind of Internet access on your computer (e.g. via an ethernet cable) then use the instructions below:
10.04 (Lucid Lynx)
Install the STA hybrid drivers/firmware from the restricted repository using the Software Centre or the Synaptic Package Manager (Under the desktop menu System > Administration > Synaptic Package Manager) and search for the bcmwl-kernel-source package and install or in a terminal (under the desktop menu Applications > Accessories > Terminal) issue the following commands:
sudo apt-get update sudo apt-get install bcmwl-kernel-source
Under the desktop menu System > Administration > Hardware/Additional Drivers, the STA drivers can be activated for use.
Note: A computer restart may be required before using the wifi card.- For temporary use with the LiveCD and LiveUSB environments, instead of a computer restart, in a terminal issue the following commands:
sudo modprobe -r b43 ssb wl sudo modprobe wl
Allow several seconds for the network manager to scan for available networks before attempting a connection.
11.10 (Oneiric Ocelot) and later
Open a Terminal and install the bcmwl-kernel-source package:
sudo apt-get update sudo apt-get install bcmwl-kernel-source
Note: If you see the message "Module build for the currently running kernel was skipped since the kernel source for this kernel does not seem to be installed" then you are missing the appropriate generic linux-header package(s).
To test the driver (and remove the need for a computer restart) use:
sudo modprobe -r b43 ssb wl brcmfmac brcmsmac bcma sudo modprobe wl
Allow several seconds for the network manager to scan for available networks before attempting a connection.
wl/STA with no internet access
If you do not have any other means of Internet access on your computer, you can install the bcmwl-kernel-source package from the restricted folder under ../pool/restricted/b/bcmwl on the Ubuntu install media.
Note: The bcmwl-kernel-source package depends on the linux-headers packages so you may need to first retrieve the appropriate package(s) from the online repositories. A running LiveCD/LiveUSB environment has these packages (allowing the wireless to work), but an installed system may not. Make sure you have the linux-headers package that matches your current kernel version, plus the appropriate generic header packages so that they are automatically updated on a kernel upgrade. To find out your current kernel use the command:
uname -r
To find what linux-headers packages you have installed use the command:
dpkg -l | grep headers
Systems installed from CDROM can add the install CD as a package source and install bcmwl-kernel-source using apt-get as above. However, if you want to do it manually then the instructions are as follows:
Navigate the install media and install the packages listed below by double clicking OR install the packages consecutively from a Terminal (in the commands below the install media is mounted at /cdrom, but yours maybe different):
../pool/main/d/dkms
cd /cdrom/pool/main/d/dkms sudo dpkg -i dkms*
../pool/main/p/patch
cd /cdrom/pool/main/p/patch sudo dpkg -i patch*
../pool/main/f/fakeroot
cd /cdrom/pool/main/f/fakeroot sudo dpkg -i fakeroot*
../pool/restricted/b/bcmwl
cd /cdrom/pool/restricted/b/bcmwl sudo dpkg -i bcmwl-kernel-source*
Upstream 802.11 Linux STA driver
For download and install instructions, please see http://www.broadcom.com/support/802.11/linux_sta.php.
ndiswrapper
If your wifi card/chipset and/or various modes are not supported by the STA driver or the open source kernel drivers, then you will need to go for ndiswrapper - this will allow you to use the Windows closed source drivers to activate your wifi card.
Switching between drivers
A good explanation of using modprobe to test drivers can be found on the Linux Wireless wiki. Ensure that the driver/modules you wish to use are not blacklisted in any of the files in /etc/modprobe.d.
External Links
Upstream b43 and b43legacy kernel driver http://wireless.kernel.org/en/users/Drivers/b43.
Installing Windows drivers with NdisWrapper.
Linux Wireless.org home page http://www.linuxwireless.org.
Open source firmware http://www.ing.unibs.it/~openfwwf/.
Broadcom STA driver page http://www.broadcom.com/support/802.11/linux_sta.php.
Debian Broadcom 43xx wireless devices wiki http://wiki.debian.org/bcm43xx.
Wireless Troubleshooting Guide https://help.ubuntu.com/community/WifiDocs/WirelessTroubleShootingGuide.
Testimonials
Please include all of the following in your notes:
- Machine Brand and Model
Wireless Brand and Model (please post the whole line): lspci | grep Broadcom
Wireless Chipset: lspci -n | grep '14e4:43'
Ubuntu Version: lsb_release -d
Kernel/architecture (including 32 vs. 64 bit) : uname -mr
- Any extra boot options you might be using (e.g., noacpi, irqpoll, etc.)
- Whether or not you had to compile NDISWrapper
User |
Result |
Date |
Notes (Include Ubuntu version, and chipset!) |
Koru |
Success |
Mar 31, 2010 |
Dell Mini 10n, Broadcom BCM4312 (rev 01), l4e4:4315 (rev 01), Ubuntu 10.04 beta 1, used steps 1 & 2e, used Synaptic Package Manager to install ndisgtk, ran ndisgtk & pointed to the .inf file, rebooted. Worked perfectly. Thank you for the write up everyone. |
cosmichippo |
Success |
July 6, 2010 |
Lenovo G550 running x64 Ubuntu 10.04 LTS, with 14e4:4315 (rev 01). Downloaded ndiswrapper-1.56 from sourceforge and compiled, then followed step 2e. I've just been barely acquainted with linux so this guide was a lot of help. Thanks! |
Ahmet Pir |
Partial Success |
Oct 13, 2011 |
Dell Inspiron e1705; ..Network controller: Broadcom Corporation BCM4311 ..; ; Ubuntu 11.10; x86_64; did not compile NDISWrapper; When I installed default system (11.04 first, then upgrade to 11.10 immediately after), it installed broadcom-sta-common package and wifi didn't work. After some mingling using directives here and some other sources, realized that b43 module was blacklisted under /etc/modprobe.d/. Saw that manual "modprobe b43" enabled the card but reboot lost it again. Installed b43-fwcutter and firmware-b43-installer and removed broadcom-sta-common, broadcom-sta-source and bcmwl-kernel-source from synaptics using 'remove' selection (which did not remove the blacklist file (it was named blacklist-sta-common.conf which includes the line blacklisting b43)). Then I tried complete removal for broadcom-sta-common package (dpkg-query -S blacklist-sta-common.conf gave that as the culprit) and wifi working flawlessly after reboot now. |
Bob Harold |
Success |
Oct 17, 2011 |
HP Compaq Presaio V6000, 03:00.0 Network controller: Broadcom Corporation BCM4311 802.11b/g WLAN (rev 01). Ubuntu 10.04 worked fine, but clean install of Ubuntu 11.10 (3.0.0-12-generic i686) offered the Broadcom STA driver, which showed wifi disabled. Following Ahmet Pir's notes, I disabled Broadcom STA in the proprietary drivers, installed b43-fwcutter and firmware-b43-installer, with reboot, and it works! |
C. F. Howlett |
Success! |
March 1, 2012 |
Dell Inspiron 1545 Network controller: Broadcom Corporation BCM4312 802.11b/g (rev 01) 14e4:4315 (rev 01) Ubuntu 10.04.4 LTS 2.6.32-39-generic i686 For my previous installation, I downloaded and compiled the Broadcom STA driver. This time, I had no wifi access during my 01:30 a.m. installation. I decided to attempt an offline solution. I followed the steps in Broadcom STA No Internet Access tutorial. Worked like a charm! |