b43 and b43legacy

b43 and b43legacy are drivers for the 802.11b/g/n family of wireless chips that Broadcom produces.

Note: Broadcom USB devices are handled by the driver.

  • b43legacy: supports BCM4306 Rev 2 and cards that have only 802.11b capability

  • b43: supports all other models

Kernel automatically loads correct driver for the present hardware (it checks for revision of the 802.11 core).

Please read this whole document and the FAQ before asking questions to the developers.

Caveats

  • The b43/b43legacy drivers require proprietary firmware to be loaded onto the wireless chip before it can operate, see below.

  • If you have a Broadcom USB device, it's most likely a FullMAC device. See rndis_wlan for 14e4:4320 and brcmfmac for others. The b43/b43legacy driver is not meant to support such a device.

  • It is possible to use only one driver at a moment, they are conflicting each other. See Switching between drivers for howto on choosing driver.

Known issues

  • LP-PHY devices: DMA errors on some machines with kernel 2.6. Problem was fixed in 3.0. Using PIO (module param) can be used as workaround for 2.6.
  • BCM4318 chipset: AP mode does not work because of packet loss in high transmission rates. Hard to debug & fix.

  • BCM4321: some cards do not work in DMA mode with kernel 3.1 and older. Problem was fixed in 3.2. A workaround for older kernel is to use PIO mode (b43.pio=1 module param).
  • G-PHY devices: not working with kernels 3.15 and 3.16-rc1 (a regression). This was fixed in 3.15.5 (6f3f164) and 3.16-rc3 (2fc68eb).

Supported devices

To find out whether a PCI device is supported by the b43 or b43legacy drivers, issue this lspci command:

lspci -vnn -d 14e4:

The command will output a string similar to this example:

0001:01:01.0 Network controller [0280]: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller [14e4:4318] (rev 02)

Ignore everything, except the last part inside of the [ ]. Find that phrase in the below table to determine support.

PCI-ID

Supported?

Chip ID

Modes

PHY version

Alternative

14e4:0576

not tested

BCM43224

a/b/g/n

?

wl/brcm80211

14e4:4301

yes (b43legacy)

BCM4301

b

B

14e4:4306

yes (b43legacy)

BCM4306/2

b/g

G

14e4:4307

yes

BCM4306/3

b/g

G

14e4:4311

yes

BCM4311

b/g

G

wl

14e4:4312

yes

BCM4311

a/b/g

G (r8)

wl

14e4:4313

not tested

BCM4311

a

?

wl

no

BCM4313

b/g/n

LCN (r1)

wl/brcm80211

14e4:4315

yes

BCM4312

b/g

LP (r1)

wl

14e4:4318

yes

BCM4318

b/g

G (r7)

14e4:4319

yes

BCM4318

a/b/g

G

14e4:4320

yes (b43legacy)

BCM4306/2

b/g

G (r1)

yes

BCM4306/3

?

G (r2)

14e4:4321

partially

BCM4321

?

N (r2)

14e4:4322

no

BCM4322

b/g/n

N (r4)

14e4:4324

yes (b43legacy)

BCM4306

a/b/g

G (r1)

yes

BCM4306/3

a/b/g

G (r5)

14e4:4325

yes (b43legacy)

BCM4306/2

b/g

G (r1)

14e4:4328

partially

BCM4321

b/g/n

N (r2)