Broadcom STA wireless driver (wl) version 6.30.223.271, patched to compile and run on Linux kernel 6.17+.
Fixes WiFi on MacBook Pro 2015 (and other Macs) running Linux with kernel 6.17+.
Based on broadcom-sta-dkms 6.30.223.271-23ubuntu1.1 from Ubuntu non-free.
- MacBook Pro Mid-2015 (MacBookPro11,5) — BCM4360, Ubuntu 24.04, kernel 6.17.0-14-generic
Any device supported by the original broadcom-sta driver, including:
| Chip | PCI ID | Found in |
|---|---|---|
| BCM4360 | 14e4:43a0 |
MacBook Pro 2013–2015, iMac 2013–2015 |
| BCM43602 | 14e4:43ba |
MacBook Pro 2015–2016, MacBook Air 2015 |
| BCM4352 | 14e4:43b1 |
MacBook Pro 2012–2013 |
| BCM43228 | 14e4:4359 |
Various laptops |
| BCM4331 | 14e4:4331 |
MacBook Pro 2011–2012, MacBook Air 2011–2012 |
Full list in /usr/share/broadcom-sta/broadcom-sta.ids.
Keywords: MacBook Pro WiFi Linux 6.17, MacBook Air WiFi Linux, Apple Mac wireless not working Linux, broadcom-sta DKMS build failed kernel 6.17, BCM4360 Linux driver, wl driver kernel 6.17
| File | Change | Reason |
|---|---|---|
Makefile |
EXTRA_CFLAGS → ccflags-y, EXTRA_LDFLAGS → ldflags-y |
Removed from kbuild in 6.17 |
wl_linux.c/h |
ndo_do_ioctl → ndo_siocdevprivate |
Required since kernel 5.15 for SIOCDEVPRIVATE |
wl_linux.c |
from_timer → timer_container_of |
from_timer removed in 6.17 |
wl_linux.c |
del_timer → timer_delete |
del_timer removed in 6.17 |
wl_linux.c |
Added #include <linux/timer.h> |
No longer transitively included |
linuxver.h |
del_timer_sync → timer_delete |
Same timer API rename |
wl_cfg80211_hybrid.c |
Added radio_idx param to set_wiphy_params, set_tx_power, get_tx_power |
cfg80211 multi-radio API in 6.17 |
wl_cfg80211_hybrid.c |
/* falls through */ → fallthrough; |
-Wimplicit-fallthrough fix |
# Copy source to DKMS location
sudo cp -r . /usr/src/broadcom-sta-6.30.223.271
# Build and install
sudo dkms install broadcom-sta/6.30.223.271
# Blacklist conflicting drivers and load wl
sudo tee /etc/modprobe.d/broadcom-wl.conf <<EOL
blacklist brcmfmac
blacklist bcma
blacklist b43
EOL
sudo modprobe -r brcmfmac bcma
sudo modprobe wlIf you already have broadcom-sta-dkms installed from your distro's repos, you can patch it in-place:
sudo apt install broadcom-sta-dkms
sudo bash patch-and-build.shThe script patches the source at /usr/src/broadcom-sta-6.30.223.271, rebuilds via DKMS, and tells you how to load the driver. All patches are idempotent (safe to run multiple times).
make KVER=$(uname -r)
sudo insmod wl.koThe open-source wrapper code is licensed under the ISC License by Broadcom Corporation.
The binary blobs (lib/wlc_hybrid.o_*) are proprietary. See source file headers for full license text.