You are on page 1of 8

WifiDocs/Driver/bcm43xx

This page aims at getting your Broadcom BCM43xx based wireless network card working. Some cards should work out-of-the-box, whilst others may need packages downloading from an install CD or using an existing Internet connection (e.g. Ethernet). Depending on the release, these packages can often be simply activated under the desktop menu System > Administration > Hardware/Additional Drivers.

Identifying Your Broadcom BCM43xx Chipset (PCI)


Cards produced by Broadcom are supported by several different drivers. It is important to find out what specific card you have. In a Terminal the command lspci will display information about all PCI devices attached to your computer. To display only devices manufactured by Broadcom (including wifi cards), apply a filter for "14e4" as follows. Open a Terminal and enter the following command:
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) Hp Pavilion G4: lspci -vvnn | grep 14e4 01:00.0 Network controller [0280]: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller [14e4:4727] (rev 01)

You now know that: The Chip ID is BCM4322 The PCI-ID is [14e4:432b] With this information you can select the driver to use.

Drivers available in Ubuntu


As you may appreciate, drivers are under constant development and their are differences in availability and support across the different Ubuntu releases. For example, the latest Ubuntu release will have higher versions of the drivers than the last Ubuntu LTS release. Where a Chip ID is supported by more than one driver/module please see the Switching between drivers section below. The following is an overview of the different kernel modules (drivers) that are available for Broadcom wireless devices. Please help to keep this list updated!

wl - Proprietary Broadcom STA Wireless driver For Chip ID BCM4311, BCM4312, BCM4313, BCM4321, BCM4322, BCM43224, BCM43225, BCM43227 and BCM43228. Install either bcmwl-kernel-source (instructions below) OR the broadcom-sta (instructions at http://wiki.debian.org/wl) packages. b43 - Open source driver For Chip ID BCM4306 (rev 03), BCM4309, BCM4311, BCM4312, BCM4318, BCM4322, BCM4331, BCM43224 and BCM43225. Note: Not all PCI-ID's and/or modes are supported. A more complete and up-to-date list of supported b43/b43legacy devices may be found on the Linux Wireless wiki. Use your card's PCI ID (the number in the square brackets) to find it's status in the table. Instructions to install/extract the required firmware using one of the b43-fwcutter packages are below. b43legacy - Open source driver For Chip ID BCM4301, BCM4306 (rev 02), and BCM4309. Follow the b43 firmware instructions below. brcmsmac (a.k.a brcm80211) - Open source driver from Broadcom (merged into kernel 2.6.37) For Chip ID BCM4313, BCM43224 and BCM43225. brcmfmac - Open source driver from Broadcom For Chip ID BCM4329, BCM4330, BCM4334, BCM43235, BCM43236 and BCM43238. rndis_wlan - Open source driver supporting wireless RNDIS chipsets For Chip ID BCM4320 ndiswrapper - Use the Windows closed source drivers to activate your wifi card bcm43xx - Deprecated driver (automatically blacklisted). DO NOT USE. Only included here for completeness.

Installing STA drivers


STA - Internet access
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)


1. 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-kernelsource 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

2. 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. 3. 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. Back to top

11.10 (Oneiric Ocelot) - 12.10 (Quantal Quetzal)


Open a Terminal and install the bcmwl-kernel-source package:
sudo apt-get update sudo apt-get --reinstall 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. The bcmwl-kernel-source package should automatically blacklist the open source drivers so that the STA driver is the only one in use. However, some 11.10 users may have to manually blacklist the open source modules (please see the Known Issues section). Back to top

STA - 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 --get-selections | 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): 1. ../pool/main/d/dkms
cd /cdrom/pool/main/d/dkms sudo dpkg -i dkms*

2. ../pool/main/p/patch
cd /cdrom/pool/main/p/patch sudo dpkg -i patch*

3. ../pool/main/f/fakeroot
cd /cdrom/pool/main/f/fakeroot sudo dpkg -i fakeroot*

4. ../pool/restricted/b/bcmwl
cd /cdrom/pool/restricted/b/bcmwl sudo dpkg -i bcmwl-kernel-source*

Back to top

Upstream 802.11 Linux STA driver


For download and install instructions, please see http://www.broadcom.com/support/802.11/linux_sta.php . Back to top

Installing b43/b43legacy firmware


The Ubuntu kernel in versions 8.04.x (Hardy Heron) and higher do provide the b43 drivers, however due to copyright restrictions not the proprietary firmware which is required to run your card. The following instructions explain how to extract the required firmware.

b43 - Internet access


8.04 (Hardy Heron) and 10.04 (Lucid Lynx)
If you have some other kind of Internet access on your computer (e.g. via an ethernet cable), you can download the b43/b43legacy firmware by simply installing the b43-fwcutter package which does the download and setup for you automatically.

1. To install b43-fwcutter issue the following commands in a terminal (under the desktop menu Applications > Accessories > Terminal) and follow the prompts:
sudo apt-get update sudo apt-get install b43-fwcutter

2. Under the desktop menu System > Administration > Hardware/Additional Drivers, the b43 drivers can be activated for use. 3. 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 (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. Back to top

11.10 (Oneiric Ocelot) - 12.10 (Quantal Quetzal)


Open a Terminal and if you haven't already done so, 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

Restart the computer or reload the b43/b43legacy module as outlined in the Switching between drivers section below (replace b43 with b43legacy where appropriate). 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. Back to top

b43 - 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. 1. 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*

2. 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-wl5.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 . 3. 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-wl4.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-wl5.10.56.27.3/driver/wl_apsta/wl_prebuilt.o

4. Restart the computer or reload the b43/b43legacy module as outlined in the Switching between drivers section below (replace b43 with b43legacy where appropriate). Back to top

Switching between drivers


If you card is supported by more than one driver then use the modprobe command to test the drivers. First unload all conflicting drivers (this includes removing the driver you're trying to install):
sudo modprobe -r b43 bcma sudo modprobe -r brcmsmac bcma sudo modprobe -r wl

To load a specific driver use one of the following commands:


sudo modprobe b43 sudo modprobe brcmsmac sudo modprobe wl

Allow several seconds for the network manager to scan for available networks before attempting a connection. After a reboot the system may auto-load a different driver to the one you wanted to use. Consequently, for permanent use, you may find it necessary to blacklist the driver/module you are not using. In the command below replace drivername with the driver you want to blacklist:
echo "blacklist drivername" | sudo tee -a /etc/modprobe.d/blacklist-broadcomwireless.conf

Update the initramfs after any changes to the blacklist files:


sudo update-initramfs -u

Note: The bcmwl-kernel-source package will automatically blacklist the open source drivers/modules in /etc/modprobe.d/blacklist-bcm43.conf. If you wish to permanently use the open source drivers then remove the bcmwl-kernel-source package:
sudo apt-get purge bcmwl-kernel-source

Ensure that the driver/modules you wish to use are not blacklisted in any of the other files in /etc/modprobe.d . Back to top

Unsupported devices
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. Back to top

Known Issues
Please include a launchpad bug report with any problems listed here: 8.04 - On Ubuntu 8.04 there is a bug that forbids ndiswrapper to works with BCM4311. Unloading the ssb module and then loading it back AFTER ndiswrapper solves the problem (see bug). To customize how ndiswrapper loads (all one command):
echo -e '#Hardy ssb/ndiswrapper workaround, added' `date` '\ninstall ndiswrapper modprobe -r b43 b44 b43legacy ssb; modprobe --ignore-install ndiswrapper $CMDLINE_OPTS; modprobe ssb; modprobe b44;' | sudo tee -a /etc/modprobe.d/ndiswrapper

11.10 - Some users may have to manually blacklist the brcmsmac and bcma modules (see bug). Back to top

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. Back to top

CategoryHardware CategoryNetworking CategoryWireless

You might also like