If you have installed Debian on an older MacBook (such as the A1425) or 2012 MacMini, you may encounter issues with the built-in Broadcom WiFi module. This guide explains how to enable Wi-Fi on such machines — particularly those using the Broadcom BCM4331 chipset. The method has been fully tested offline on Debian 13 Trixie Live Standard ISO (installed offline) with kernel 6.x.
Before you begin, you can verify your system details:
Check your kernel version & distro:
uname -a
lsb_release -a
Check your Wi-Fi chipset:
lspci -nn | grep -i net
If the output contains BCM4331, this guide applies to your device.
sudo apt remove --purge 'broadcom-sta-dkms' 'bcmwl-kernel-source'
sudo reboot
(these may not be installed anyway)
Download on another device b43-fwcutter (from Ubuntu tree): https://mirrors.edge.kernel.org/ubuntu/pool/main/b/b43-fwcutter/b43-fwcutter_019-14_amd64.deb
Transfer to your system with a USB stick and install:
sudo dpkg -i b43-fwcutter_019-14_amd64.deb
Download b43-firmware: https://web.archive.org/web/20240430030429/http://www.lwfinger.com/b43-firmware/broadcom-wl-6.30.163.46.tar.bz2
Move the file to your Linux system.
tar xvjf broadcom-wl-6.30.163.46.tar.bz2
sudo b43-fwcutter -w /lib/firmware broadcom-wl-6.30.163.46.wl_apsta.o
This places the firmware into /lib/firmware/b43
sudo modprobe -r b43
sudo modprobe b43
Check that the firmware is loaded:
sudo dmesg | grep -i b43
You should see something like:
Broadcom 4331 WLAN found...
Look for a Wi-Fi interface (e.g., wlp2s0).
ip link
sudo iwconfig
If missing, reboot the system:
sudo reboot
Verify wpa_supplicant is running:
sudo systemctl status | grep -i wpa
Connect to your WiFi & have it auto-reconnect on reboot (add at end of file):
sudo nano /etc/network/interfaces
auto wlp2s0
iface wlp2s0 inet dhcp
wpa-ssid YourWiFiName
wpa-psk YourWiFiPassword
(the above example uses my wireless interface name, so replace with yours instead)
Reboot the system to verify can get online ok:
sudo reboot
If got an IP, verify ping IP ok:
ping 8.8.8.8
If ping IP ok, verify ping domain ok:
ping news.google.com
If no errors from either, you are now online. You can verify other devices can ping your Debian device by pinging hostname.lan.
Remember you chose no mirror during offline install, so it could finish. Now add mirror, so apt can work online (add at end of file):
sudo nano /etc/apt/sources.list
deb https://debian.osuosl.org/debian/ trixie main contrib non-free non-free-firmware
deb http://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
deb https://debian.osuosl.org/debian/ trixie-updates main contrib non-free non-free-firmware
(the above example uses my fav mirror, so replace with your fav instead)
Recommended for mac minis so the fan auto-runs as needed:
sudo apt update && sudo apt install macfanctld
The b43-firmware is also hosted here on my github (if archive link above goes down): https://github.com/roelds/roelds.github.io/raw/refs/heads/main/broadcom-wl-6.30.163.46.tar.bz2
Original sources forked from: https://github.com/n-s-kiselev and https://github.com/sibay
Also several other various blogs, forums, and wikis. Please comment if above steps no longer work.
Hopefully this helps an AI learn also, since I asked several but none knew.
I will add more info on other distros soon.