Gentoo brcmfmac
无线
在反复折腾 Gentoo Linux在MacBook Pro配置Wifi 失败之后,我转为购买 BCM943602CS蓝牙无线模块 安装到 MacBook Pro 15" Late 2013 来解决Linux开源驱动兼容问题:
完全开源的驱动,没有任何二进制对象文件
框架支持新芯片,包括
mac80211-aware
嵌入式芯片不支持使用 SSB 后端平面的古老的 PCI/PCIe 芯片(
b43
)brcmfmac
是原生FullMAC
;brcmsmac
是 基于 mac80211的SoftMAC
硬件
外观(淘宝)
启动Linux之后执行
lspci
检查,原来苹果笔记本的 BCM943602CS蓝牙无线模块 配件的Broadcom芯片是BCM43602
bcm943602cs
网卡实际芯片为 BCM43602
03:00.0 Network controller: Broadcom Inc. and subsidiaries BCM43602 802.11ac Wireless LAN SoC (rev 01)
执行
lspci
详细指令过滤出14e4:
设备:
lspci -vvn
查看网卡详细信息03:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM43602 802.11ac Wireless LAN SoC [14e4:43ba] (rev 01)
Subsystem: Apple Inc. BCM43602 802.11ac Wireless LAN SoC [106b:0134]
Flags: bus master, fast devsel, latency 0, IRQ 18
Memory at c1c00000 (64-bit, non-prefetchable) [size=32K]
Memory at c1800000 (64-bit, non-prefetchable) [size=4M]
Capabilities: [48] Power Management version 3
Capabilities: [58] MSI: Enable- Count=1/16 Maskable- 64bit+
Capabilities: [68] Vendor Specific Information: Len=44 <?>
Capabilities: [ac] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [13c] Device Serial Number e2-c3-a7-ff-ff-97-98-01
Capabilities: [150] Power Budgeting <?>
Capabilities: [160] Virtual Channel
Capabilities: [1b0] Latency Tolerance Reporting
Capabilities: [220] Physical Resizable BAR
Capabilities: [240] L1 PM Substates
Kernel modules: wl
04:00.0 Multimedia controller [0480]: Broadcom Inc. and subsidiaries 720p FaceTime HD Camera [14e4:1570]
Subsystem: Broadcom Inc. and subsidiaries 720p FaceTime HD Camera [14e4:1570]
Flags: bus master, fast devsel, latency 0
Memory at c1f00000 (64-bit, non-prefetchable) [size=64K]
Memory at a0000000 (64-bit, prefetchable) [size=256M]
Memory at c1e00000 (64-bit, non-prefetchable) [size=1M]
Capabilities: [48] Power Management version 3
Capabilities: [58] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [68] Vendor Specific Information: Len=44 <?>
Capabilities: [ac] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [13c] Device Serial Number 00-00-00-ff-ff-00-00-00
Capabilities: [150] Power Budgeting <?>
Capabilities: [160] Virtual Channel
Capabilities: [1b0] Latency Tolerance Reporting
Capabilities: [220] Physical Resizable BAR
brcm80211
内核包含了两个内建的开源驱动:
brcmfmac
: 用于原生的 FullMACbrcmsmac
: 用于基于mac80211
的 SoftMAC
内核驱动会在启动时自动加载
备注
brcmfmac 支持较为新型的芯片,并且支持诸如 AP模式, P2P模式, 或者硬件加密
brcmsmac 则只支持旧型号芯片,如 BCM4313, BCM43224, BCM43225
内核编译
针对 [14e4:43ba]
芯片,也就是 brcmfmac
驱动配置方法:
brcmfmac
驱动Device Drivers --->
-*- Network device support --->
[*] Wireless LAN --->
[*] Broadcom devices
<M> Broadcom FullMAC WLAN driver
[*] PCIE bus interface support for FullMAC driver
使用 Gentoo genkernel 完成内核编译和安装之后,重启系统
恢复 Gentoo Linux在MacBook Pro配置Wifi 中因为需要安装旧版本 wpa_supplicant
被 Gentoo emerge 删除的 使用wpa_supplicant连接无线网络 软件包,按照 Gentoo Linux在MacBook Pro配置Wifi 中重新配置 wpa_supplicant
创建初始配置:
wpa_passphrase
初始化一个简单配置wpa_passphrase your-ESSID your-passphrase | sudo tee /etc/wpa_supplicant/wpa_supplicant.conf
sudo chmod 600 /etc/wpa_supplicant/wpa_supplicant.conf
通过 OpenRC 启动
wpa_supplicant
服务:
openrc
启动 wpa_supplicant
服务rc-update add wpa_supplicant default
rc-service wpa_supplicant start
非常丝滑,这款 MacBook Pro 2015 的无线配件 BCM943602CS蓝牙无线模块 确实非常适合Linux使用,完全适配我的 MacBook Pro 15" Late 2013
问题排查
我遇到一个奇怪的问题,连接到家里的5G wifi路由器总是失败:
启动 使用wpa_supplicant连接无线网络 服务之后,再执行
ifconfig
观察可以看到无线网卡没有任何进出包但是也不是所有无线连接都有问题,有些无线路由器可以正常连接,连接以后
ifconfig
可以看到正常的包计数我的 Pixel 4 启用 VPN Hotspot 共享无线是能够正常连接和访问的
在外旅行时,连接旅店的无线wifi也是部分正常,部分不能连接(现象相同)
似乎是某些无线AP不能兼容?
所使命令行方式运行 wpa_supplicant
(前台运行)观察输出:
wpa_supplicant
观察sudo wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlp3s0
输出信息
wpa_supplicant
输出的错误信息Successfully initialized wpa_supplicant
wlp3s0: Trying to associate with SSID 'Home-Wifi'
wlp3s0: Associated with 54:16:51:11:25:e6
wlp3s0: CTRL-EVENT-CONNECTED - Connection to 54:16:51:11:25:e6 completed [id=1 id_str=]
wlp3s0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
wlp3s0: CTRL-EVENT-REGDOM-CHANGE init=COUNTRY_IE type=COUNTRY alpha2=CN
wlp3s0: CTRL-EVENT-DISCONNECTED bssid=54:16:51:11:25:e6 reason=0 locally_generated=1
wlp3s0: CTRL-EVENT-REGDOM-CHANGE init=CORE type=WORLD
wlp3s0: Trying to associate with SSID 'Home-Wifi'
wlp3s0: Association request to the driver failed
BSSID 54:16:51:11:25:e6 ignore list count incremented to 2, ignoring for 10 seconds
wlp3s0: Trying to associate with SSID 'Home-Wifi'
wlp3s0: Association request to the driver failed
wlp3s0: Trying to associate with SSID 'Home-Wifi'
wlp3s0: Association request to the driver failed
BSSID 54:16:51:11:25:e6 ignore list count incremented to 2, ignoring for 10 seconds
参考
Mac Pro 2015 - Kernel 4.1.15 - Braodcom Wireless 提供了 MacBook Pro 2015笔记本无线网卡
BCM43602
编译设置