Arch系统更新后Macbook Air 2012 Wi-Fi故障求助(broadcom-wl-dkms驱动)
Hey there, sorry to hear your Wi-Fi stopped working after updating Arch on your 2012 Macbook Air—let’s troubleshoot this step by step. Broadcom drivers can be finicky after kernel updates, so here’s what to try:
1. 先重启到最新内核
System updates often include a new kernel, but if you didn’t reboot after updating, your system might still be running the old one while the broadcom-wl-dkms driver was compiled for the new kernel. A quick reboot can fix this immediately.
2. 验证内核头文件与dkms模块状态
DKMS relies on matching kernel headers to compile drivers correctly. Let’s check if everything is aligned:
- First, get your currently running kernel version:
uname -r - Install the matching kernel headers (if missing):
sudo pacman -S linux-headers=$(uname -r) - Check the status of the
broadcom-wlDKMS module:
You should see an entry likedkms statusbroadcom-wl, <version>, <your-kernel-version>, x86_64: installed. If it saysbuiltbut notinstalled, or the kernel version doesn’t match your running one, proceed to recompile.
3. 重新编译并安装broadcom-wl-dkms模块
If the module is misaligned with your kernel, force a rebuild:
- First, remove the existing DKMS module:
sudo dkms remove broadcom-wl --all - Reinstall the driver package to trigger a fresh DKMS build:
sudo pacman -S --reinstall broadcom-wl-dkms - Load the module manually (if it doesn’t load automatically):
sudo modprobe wl
4. 检查冲突模块
Sometimes other Broadcom modules (like brcmsmac or b43) can conflict with wl. Let’s blacklist them to prevent interference:
- Edit the blacklist file:
sudo nano /etc/modprobe.d/blacklist-broadcom.conf - Add these lines:
blacklist b43 blacklist b43legacy blacklist brcmsmac blacklist bcma - Save the file (Ctrl+O, Enter) and exit (Ctrl+X), then reboot to apply changes.
5. 验证Wi-Fi服务状态
Finally, make sure the NetworkManager service is running (assuming you use it):
sudo systemctl enable --now NetworkManager sudo systemctl restart NetworkManager
Then check if your Wi-Fi interface appears with ip link show.
If none of these steps work, you can dig into system logs for more clues with journalctl -k | grep wl—this will show specific errors when the wl module tries to load.
内容的提问来源于stack exchange,提问作者Toothrot

