快速设置Alpine Linux无线: broadcom-wl
在 Linux 内核升级到 6.12.x 后,Broadcom 的官方 wl 源代码( 设置Alpine Linux无线: broadcom-wl )会因为内核 API 的巨大变动(如 strlcpy 被移除、 net_device 结构体变化等)而导致编译彻底失败。
MacBook Air 2014 (BCM4360 芯片),在 Alpine Linux 上有以下几种快速解决办法
方法一: 使用开源驱动 brcmfmac (推荐)
BCM4360 (SDIO/PCIe) 其实已经由内核内置的开源驱动 brcmfmac 提供了非常好的支持,这样就不再需要忍受闭源 wl 驱动的编译之苦(之前我查询资料饶了很多弯路)
安装固件包:
固件
sudo apk add linux-firmware-brcm
清理旧的
wl模块:
清理
wl 模块sudo modprobe -r wl
加载开源模块
brcmfmac:
加载
brcmfmacsudo modprobe brcmfmac
方法二: 使用经过社区修补的 wl 源码
目前社区维护最好的版本是 broadcom-wl-dkms ,它包含了支持 6.12+ 内核的补丁
安装构建工具:
安装编译工具
sudo apk add build-base linux-lts-dev
下载补丁过的源代码:
获取补丁过的源代码
wget https://aur.archlinux.org/cgit/aur.git/snapshot/broadcom-wl-dkms.tar.gz
tar -xvf broadcom-wl-dkms.tar.gz
cd broadcom-wl-dkms
# 运行构建(注意:你可能需要根据 Alpine 环境微调 Makefile)
make -C /lib/modules/$(uname -r)/build M=$(pwd)
模块冲突预防
如果 brcmfmac 和 wl 同时存在,系统可能会混乱。务必拉黑不用的驱动: 编辑 /etc/modprobe.d/blacklist.conf :
设置 /etc/modprobe.d/blacklist.conf
blacklist b43
blacklist bcma
blacklist ssb
# 使用brcmfmac,拉黑wl
blacklist wl