b43 and b43legacy
The b43 drivers (bcm43xx in mainline kernels, b43 and b43legacy in wireless-2.6 and 2.6.24 and later) are drivers for the 802.11 B/G family of wireless chips Broadcom produces.
All Broadcom chips require firmware that is loaded onto the wireless chip before it can operate. See below.
There are also USB devices based on Broadcom chips, these are not supported at all!
- bcm4303 (802.11b-only chips)
- bcm4311 rev 1 / bcm4312
- bcm4311 rev 2 / bcm4312 (needs patches for 2.6.24)
- The 802.11a part of the 4309 and 4312 is not supported.
- There is no support for any Draft 802.11n features. We are working on it.
- BCM 4328/4329
Please see the device list.
- Station mode
- Access Point mode (although not tested very well).
- Ad-Hoc (IBSS) mode
- Monitor and Promisc mode.
- "Monitor while operating" and multiple monitor interfaces.
- In-Hardware traffic de/encryption (relieves your CPU).
- LEDs to signal card state and traffic.
- In-Hardware MAC address filter.
- Probably something we forgot to add here.
not working yet
- Interference mitigation.
- Bluetooth coexistance (most code implemented, but untested)
- Probably something else that's not listed under "Works".
Many people have donated money, hardware or other services to make this driver possible. Thanks! Please see the donations page for details.
- IRC channel
- irc.freenode.net #bcm-users (English please)
- Mailing list
The Broadcom wireless chip needs software, called "firmware", that runs on the wireless chip itself during operation. This firmware is copyrighted by Broadcom and it must be extracted from Broadcom's proprietary drivers. To get such firmware on your system, you must download the driver from a legal distribution point, as noted below. Then you must extract the firmware from that Broadcom driver and install it in the special directory for firmware - usually /lib/firmware. To accomplish this task, do the following:
- Download the appropriate driver.
For latest b43, download and untar version 4 firmware:
If you are using kernel 2.6.24(-rc) (and only then!) you need http://downloads.openwrt.org/sources/broadcom-wl-18.104.22.168.tar.bz2
For b43legacy and bcm43xx, download version 3 firmware:
Install the appropriate latest version of the fwcutter software, either by installing the package using the method appropriate for your distro (YaST, apt-get, etc.), or by downloading the package from http://bu3sch.de/b43/fwcutter/.
For b43 and b43legacy, you need b43-fwcutter.
For bcm43xx, you need bcm43xx-fwcutter.
If you are using kernel 2.6.24(-rc) and you are using b43, you need this version of fwcutter: http://bu3sch.de/b43/fwcutter/b43-fwcutter-009.tar.bz2
- Extract the firmware by cd'ing to the directory containing the ".o" file, and using one or more of the following commands:
For bcm43xx: 'sudo bcm43xx-fwcutter -w /lib/firmware wl_apsta-22.214.171.124.o'
For b43legacy: 'sudo b43-fwcutter -w /lib/firmware wl_apsta-126.96.36.199.o'
For b43: 'sudo b43-fwcutter -w /lib/firmware driver/wl_apsta_mimo.o'
Note that in the version 4 firmware tarball for b43 there are multiple .o files. Only the file driver/wl_apsta_mimo.o will work.
Please note that the firmware from the binary drivers is Copyrighted by Broadcom Corporation and must not be redistributed.
bcm43xx, b43legacy, b43, softmac,... the full story
The bcm43xx is the old deprecated driver. It is using the ieee80211 + softmac libraries of code shared with other drivers. This stack is deprecated and being replaced by the new mac80211 stack. A new stack implies brand new, re-written driver(s): here come b43 and b43legacy.
What's the difference between b43legacy and b43?
b43 offers a newer codebase and hardware crypto support. Broadcom did not release any version 4 firmware files for some older boards, possibly due to memory constraints on the cards themselves. Stuck with firmware version 3, these cards must use b43legacy which doesn't have hardware crypto support because that has not been reverse engineered completly for version 3 firmware.
b43legacy should be used on all 4301 and 4303 cards. 4306 and 4309 cards with a MAC core revision of 4 or less should also use b43legacy. b43 should be used on all other cards. You can safely have both versions built on the same system. The full MAC core version is printed in the kernel logs when "SSB debugging" is enabled in KConfig and the driver finds a board. Type "dmesg" to see it. If you are unsure and don't know what we are talking about here, always build both b43 and b43legacy (and get firmware for both too). The kernel autoloader will automatically do the right thing and load the correct driver for your device.
- A tool for the modification of the Broadcom Sonics Silicon Backplane SPROM (e.g. you can permanently change the MAC address or the PCI IDs of your wireless card – useful on some (e.g. Compaq/HP) laptops where the BIOS checks these at boot.
- A firmware assembler/disassembler can be found in the git repository at
git clone http://git.bu3sch.de/git/b43-tools.git