当我的机器启动时,我收到以下消息:
[17.789158] b43-phy0 ERROR: FOUND UNSUPPORTED PHY(Analog 10, Type 8 (LCN), Revision 1)
[21.656204] brcmsmac bcma:0: brcms_ops_bss_info_changed: qos enabled: false (implement)
[21.656266] brcmsmac bcma:0: brcms_config: change power-save mode: false (implement)
我怎样才能解决这个问题?
答案1
答案2
此消息来自我的 Broadcom BCM4313 无线芯片。关键问题是:您的 wifi 是否正常工作?虽然我在启动时收到此消息,但我的 wifi 工作正常。每次尝试让该消息消失,都以失败告终,或者 wifi 无法正常工作。因此,如果您的 wifi 正常工作,我建议忽略该消息(它会出现在不同的内核和不同的 Linux 发行版中)。
答案3
对我来说,这是因为我的计算机的 Broadcom wi-fi 芯片不受随附的开源bcma
内核模块驱动程序的支持。当我运行 时没有出现无线连接,所以这肯定不是暂时的错误消息。我通过运行命令(注意:如果芯片是通过 USB 而不是 PCI 连接的,则可能必须使用)ip link
识别了 wi-fi 芯片,然后找到以下行(通常是最后一行):lspci -k
lsusb
03:00.0 Network controller: Broadcom Inc. and subsidiaries BCM4352 802.11ac Wireless Network Adapter (rev 03)
Subsystem: ASUSTeK Computer Inc. Device 855c
Kernel driver in use: bcma
Kernel modules: bcma
wifi 芯片是 BCM4352,我们正尝试使用bcma
内核模块与其交互。根据这一页在 kernel.org 上,默认内核模块不支持 BCM4352 芯片bcma
;您必须改用限制许可的broadcom-wl
内核模块。此驱动程序的安装过程因您的发行版而异;这里是我使用 Arch Linux 的方向。
安装后,broadcom-wl
您将有两个内核模块竞争为您的 Wi-Fi 芯片提供服务 -wl
和bcma
。您可以通过运行lspci -k
并查看以下内容来看到这一点:
03:00.0 Network controller: Broadcom Inc. and subsidiaries BCM4352 802.11ac Wireless Network Adapter (rev 03)
Subsystem: ASUSTeK Computer Inc. Device 855c
Kernel driver in use: wl
Kernel modules: bcma, wl
为了防止冲突,你需要将bcma
内核模块列入黑名单。我按照 Arch Linux wiki 上的说明进行了操作这里,创建一个文件,其中/etc/modprobe.d/nobcma.conf
包含:
# Do not load the 'bcma' module on boot.
blacklist bcma
重新启动后,您可以运行dmesg | grep bcma
检查它是否未加载,并dmesg | grep wl
确保wl
已加载(以及有关内核被专有代码污染的一些消息!)
我现在可以运行ip link
并看到无线链接存在:
...
3: wlp3s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 54:27:1e:30:26:61 brd ff:ff:ff:ff:ff:ff