Broadcom BCM4311, BCM4312, BCM4313, BCM4321, BCM4322, BCM43224, BCM43225, BCM43227, BCM43228, BCM43142, BCM4331, BCM4352, BCM4360 devices (wl)
This page describes how to enable support for WiFi devices based on Broadcom wireless LAN chips, using the vendor driver on Debian systems.
The proprietary Broadcom wireless LAN driver (wl, aka broadcom-sta) provides support for some Broadcom-based PCI/PCIe hardware. It includes a binary-only component targeted for the x86 or x86-64 architecture. Supported devices are listed at the end of this page.
The BCM4313, BCM43224 and BCM43225 chips are alternatively supported by the open source brcmsmac driver. The BCM4311, BCM4312, BCM4321, BCM4322 and BCM4331 chips are alternatively supported by the open source b43 driver.
Add a "non-free" component to /etc/apt/sources.list for your Debian version, for example:
# Debian 9 "Stretch" deb http://deb.debian.org/debian stretch-backports main contrib non-free
# Debian 10 "Buster" deb http://deb.debian.org/debian buster-backports main contrib non-free
Update the list of available packages. Install the relevant/latest linux-image, linux-headers and broadcom-sta-dkms packages:
# apt-get update # apt-get install linux-image-$(uname -r|sed 's,[^-]*-[^-]*-,,') linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') broadcom-sta-dkms
This will also install the recommended wireless-tools package. DKMS will build the wl module for your system.
(Optional) Rescue if install/build fails in previous step
# apt-get install -f # dpkg-reconfigure broadcom-sta-dkms
(Optional) Check all the built DKMS kernel modules. There should be "wl.ko" in the list.
# find /lib/modules/$(uname -r)/updates
Unload conflicting modules:
# modprobe -r b44 b43 b43legacy ssb brcmsmac bcma
Load the wl module:
# modprobe wl
Switch between wl/OSS drivers
#!/bin/sh WIFI=$(find /sys/class/net -follow -maxdepth 2 -name wireless 2>/dev/null|cut -d / -f 5|head -1) echo ip link set $WIFI down ip link set $WIFI down >/dev/null 2>&1 modprobe -r wl brcmsmac modprobe -r cfg80211 brcmsmac cordic brcmutil bcma if [ "$1" = "wl" ]; then modprobe wl else modprobe brcmsmac fi sleep 0.1 WIFI=$(find /sys/class/net -follow -maxdepth 2 -name wireless 2>/dev/null|cut -d / -f 5|head -1) echo ip link set $WIFI up ip link set $WIFI up >/dev/null 2>&1
The Sonics Silicon Backplane driver (ssb) conflicts with the wl driver (545388).
b44, b43, b43legacy and ssb are blacklisted by default as of broadcom-sta 184.108.40.206.3-3 (brcm80211 and brcmsmac since 220.127.116.11-1, 18.104.22.168-2 respectively).
- This prevents use of any Ethernet device supported by b44.
- Frequent disconnections can be experienced. This may be resolved by disabling power management via:
Wireless channels 12 and 13 are not available for use (636119).
Inability to join networks with hidden SSIDs (698697).
Upgrading from Debian 6.0 "Squeeze" to Debian 7 "Wheezy" may require network configuration amendment (648396).
See bugs reported on this package in the Debian Bug Tracking System.
- Broadcom BCM4311 (PCI IDs 14e4:4311, 14e4:4312)
- Broadcom BCM4312 (PCI ID 14e4:4315)
- Broadcom BCM4313 (PCI ID 14e4:4727)
- Broadcom BCM4321 (PCI IDs 14e4:4328, 14e4:4329, 14e4:432a)
- Broadcom BCM4322 (PCI IDs 14e4:432b, 14e4:432c, 14e4:432d)
- Broadcom BCM43224 (PCI IDs 14e4:0576, 14e4:4353)
- Broadcom BCM43225 (PCI ID 14e4:4357)
- Broadcom BCM43227 (PCI ID 14e4:4358)
- Broadcom BCM43228 (PCI ID 14e4:4359)
- Broadcom BCM43142 (PCI ID 14e4:4365)
- Broadcom BCM4331 (PCI ID 14e4:4331)
- Broadcom BCM4352 (PCI ID 14e4:43b1)
- Broadcom BCM4360 (PCI IDs 14e4:43a0, 14e4:4360)
bcm43xx - Broadcom 43xx wireless devices
brcm80211 - Broadcom BCM4313, BCM43224, BCM43225 devices
https://www.broadcom.com/support/802.11/linux_sta.php - 802.11 Linux STA driver