XPS 13 brcmfmac BRCMF_C_GET_ASSOCLIST 不受支持

Ric*_*her 10 linux wireless-networking broadcom dell-xps

首先,我想指出这个问题在 Arch 论坛上也有人问过,但没有成功。可以从该短线程中获得更多上下文。我在这里发帖是为了扩大受众范围,因为它似乎不是 Arch 特有的(基于另一个 XPS 用户的回应)。

我有一台戴尔 XPS 13 (9350) 笔记本电脑。在相当规律的基础上(大约每天一到两次,虽然在不同的时间并且并不总是在明显的事件之后,例如盖子关闭或暂停),我会失去联系。也就是说,i3bar 会告诉我我仍然处于连接状态,并且我仍然有一个 IP,但是没有来自任何服务器的 ping 响应。

在这种状态下,当我尝试使用 更改无线连接时netctl-auto switch-to,我得到

WPA association/authentication failed for interface 'wlp58s0'
Run Code Online (Sandbox Code Playgroud)

(显然所有键都是正确的,因为连接在其他时间工作。)似乎可以治愈这种状态的唯一方法是重新启动,它总是可以解决问题。

在重新启动期间,我经常看到此消息(有关journalctl输出,请参见下文):

brcmfmac: brcmf_msgbuf_tx_ioctl: Failed to reserve space in commonring
Run Code Online (Sandbox Code Playgroud)

一些细节:

~$ lspci -vnn | grep -i net
3a:00.0 Network controller [0280]: Broadcom Limited BCM4350 802.11ac Wireless Network Adapter [14e4:43a3] (rev 08)
    Subsystem: Dell BCM4350 802.11ac Wireless Network Adapter [1028:0021]

~$ lsmod | grep brcmfmac
brcmfmac              233472  0
brcmutil               16384  1 brcmfmac
cfg80211              516096  1 brcmfmac
mmc_core              122880  2 rtsx_pci_sdmmc,brcmfmac
usbcore               208896  7 uvcvideo,usbhid,cdc_acm,xhci_pci,brcmfmac,btusb,xhci_hcd

~$ pacman -Q linux
linux 4.13.3-1
Run Code Online (Sandbox Code Playgroud)

幸运的是,当我打字时,它又发生了。这是journalctl | grep brcmfmac我今天早上打开笔记本电脑(冷启动)后的输出:

Sep 29 08:04:09 thelonious kernel: usbcore: registered new interface driver brcmfmac
Sep 29 08:04:09 thelonious kernel: brcmfmac 0000:3a:00.0: enabling device (0000 -> 0002)
Sep 29 08:04:11 thelonious kernel: brcmfmac 0000:3a:00.0: Direct firmware load for brcm/brcmfmac4350-pcie.txt failed with error -2
Sep 29 08:04:11 thelonious kernel: brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Oct 22 2015 06:16:26 version 7.35.180.119 (r594535) FWID 01-e791c176
Sep 29 08:04:11 thelonious kernel: brcmfmac 0000:3a:00.0 wlp58s0: renamed from wlan0
Sep 29 08:55:42 thelonious kernel: brcmfmac: brcmf_msgbuf_query_dcmd: Timeout on response for query command
Sep 29 08:55:42 thelonious kernel: brcmfmac: brcmf_cfg80211_dump_station: BRCMF_C_GET_ASSOCLIST unsupported, err=-5
Sep 29 08:55:44 thelonious kernel: brcmfmac: brcmf_msgbuf_query_dcmd: Timeout on response for query command
... snip multiple identical errors ...
Sep 29 08:57:57 thelonious kernel: brcmfmac: brcmf_cfg80211_dump_station: BRCMF_C_GET_ASSOCLIST unsupported, err=-5
Sep 29 08:57:57 thelonious kernel: brcmfmac: brcmf_msgbuf_tx_ioctl: Failed to reserve space in commonring
Sep 29 08:57:57 thelonious kernel: brcmfmac: brcmf_cfg80211_dump_station: BRCMF_C_GET_ASSOCLIST unsupported, err=-12
Sep 29 08:58:00 thelonious kernel: brcmfmac: brcmf_msgbuf_tx_ioctl: Failed to reserve space in commonring
... snip multiple identical errors ...
Sep 29 08:58:20 thelonious kernel: brcmfmac: brcmf_msgbuf_tx_ioctl: Failed to reserve space in commonring
Sep 29 08:58:20 thelonious kernel: brcmfmac: brcmf_cfg80211_dump_station: BRCMF_C_GET_ASSOCLIST unsupported, err=-12
Run Code Online (Sandbox Code Playgroud)

在内核模块出现此类故障后,简单地重新启动服务无济于事:

~$ sudo systemctl restart netctl-auto@wlp57s0.service
A dependency job for netctl-auto@wlp57s0.service failed. See 'journalctl -xe' for details.

~$ sudo journalctl -xe 
Sep 30 10:51:58 thelonious sudo[3626]:    basie : TTY=pts/2 ; PWD=/home/basie ; USER=root ; COMMAND=/usr/bin/systemctl restart netctl-auto@wlp5
Sep 30 10:51:58 thelonious sudo[3626]: pam_unix(sudo:session): session opened for user root by (uid=0)
Sep 30 10:51:58 thelonious systemd[1]: Unnecessary job for sys-subsystem-net-devices-wlp57s0.device was removed.
-- Subject: Unit sys-subsystem-net-devices-wlp57s0.device has failed
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit sys-subsystem-net-devices-wlp57s0.device has failed.
-- 
-- The result is collected.
Sep 30 10:51:58 thelonious systemd[1]: netctl-auto@wlp57s0.service: Bound to unit sys-subsystem-net-devices-wlp57s0.device, but unit isn't acti
Sep 30 10:51:58 thelonious systemd[1]: Dependency failed for Automatic wireless network connection using netctl profiles.
-- Subject: Unit netctl-auto@wlp57s0.service has failed
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit netctl-auto@wlp57s0.service has failed.
-- 
-- The result is dependency.
Sep 30 10:51:58 thelonious systemd[1]: netctl-auto@wlp57s0.service: Job netctl-auto@wlp57s0.service/start failed with result 'dependency'.
Sep 30 10:51:58 thelonious sudo[3626]: pam_unix(sudo:session): session closed for user root
Sep 30 10:52:00 thelonious kernel: brcmfmac: brcmf_msgbuf_tx_ioctl: Failed to reserve space in commonring
Sep 30 10:52:00 thelonious kernel: brcmfmac: brcmf_cfg80211_dump_station: BRCMF_C_GET_ASSOCLIST unsupported, err=-12
...snip identical messages...
Sep 30 10:52:05 thelonious kernel: brcmfmac: brcmf_cfg80211_dump_station: BRCMF_C_GET_ASSOCLIST unsupported, err=-12
Sep 30 10:52:10 thelonious kernel: net_ratelimit: 2 callbacks suppressed
Sep 30 10:52:10 thelonious kernel: brcmfmac: brcmf_msgbuf_tx_ioctl: Failed to reserve space in commonring
...etc...
Run Code Online (Sandbox Code Playgroud)

所以,两个问题:

  1. 我可以采取哪些进一步的步骤来诊断这种情况?显然该模块正在接收一个它不支持的命令(我注意到这个补丁来自 2015 https://patchwork.kernel.org/patch/7354871/)但我不知道从哪里开始。
  2. 重启解决了我可以从终端尝试缩小搜索范围的问题是什么?

小智 11

我得到同样的

brcmfmac: brcmf_msgbuf_tx_ioctl: 无法在公共环中保留空间

在我的 XPS 15 (9550) 上反复出现,当 wifi 掉线时,通常是在睡眠/醒来之后。通常我可以用

$ sudo modprobe -r brcmfmac ; 须藤 modprobe brcmfmac

避免重启。