多年来我一直使用同一个无线设备(华硕 PCE-AC88)。几个月前的一天,我启动了 ubuntu,系统提示未找到 wifi 适配器。在尝试了各种方法但都无济于事后,我刚刚从 20.04 升级到 22.04,问题就解决了。几周后,同样的问题又出现了,出于沮丧,我干脆重新格式化了全新安装的 Ubuntu 22.04。现在,几周后,我又遇到了同样的问题。未找到 wifi 适配器。但是,如果我启动到以前的内核版本(5.19.0-38-generic),它就可以正常工作了。
我不确定是否是特定的内核版本 5.19.0-40-generic 导致了该问题,或者是否仅仅是更新内核的过程导致了该问题。
以下是我从 5.19.0-38-generic 运行它时的输出:
$ lshw -C network
*-network
description: Wireless interface
product: Broadcom Inc. and subsidiaries
vendor: Broadcom Inc. and subsidiaries
physical id: 0
bus info: pci@0000:02:00.0
logical name: wlp2s0
version: 04
serial: 2c:fd:a1:cf:33:f2
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=brcmfmac driverversion=10.28.2 firmware=01-d2cbb8fd ip=192.168.2.29 latency=0 multicast=yes wireless=IEEE 802.11
resources: irq:33 memory:f7000000-f7007fff memory:f6800000-f6ffffff memory:f2400000-f27fffff
$ lspci
02:00.0 Network controller: Broadcom Inc. and subsidiaries Device 43c3 (rev 04)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 11)
当我从 5.19.0-40-generic 运行它时的输出:
$ lshw -C network
*-network UNCLAIMED
description: Network controller
product: Broadcom Inc. and subsidiaries
vendor: Broadcom Inc. and subsidiaries
physical id: 0
bus info: pci@0000:02:00.0
version: 04
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress cap_list
configuration: latency=0
resources: memory:f7000000-f7007fff memory:f6800000-f6ffffff memory:f2400000-f27fffff
$ lspci
02:00.0 Network controller: Broadcom Inc. and subsidiaries Device 43c3 (rev 04)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 11)
我尝试过:
$ sudo apt install linux-modules-extra-5.19.0-40-generic
和:
sudo apt install --reinstall linux-generic
两者都不起作用。
编辑#1:我运行sudo dmesg
并注意到了一些事情,在启动时5.19.0-38-generic
我得到了以下条目:
$ sudo dmesg | grep brcmfmac
[ 2.718401] usbcore: registered new interface driver brcmfmac
[ 2.718432] brcmfmac 0000:02:00.0: enabling device (0000 -> 0002)
[ 2.827304] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4366c-pcie for chip BCM4366/4
[ 2.842972] brcmfmac 0000:02:00.0: Direct firmware load for brcm/brcmfmac4366c-pcie.ASUS-All Series.bin failed with error -2
[ 2.856732] brcmfmac 0000:02:00.0: Direct firmware load for brcm/brcmfmac4366c-pcie.ASUS-All Series.txt failed with error -2
[ 2.856759] brcmfmac 0000:02:00.0: Direct firmware load for brcm/brcmfmac4366c-pcie.txt failed with error -2
[ 3.782706] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4366c-pcie for chip BCM4366/4
[ 3.782781] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available (err=-2), device may have limited channels available
[ 3.783002] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4366/4 wl0: Nov 5 2018 03:19:56 version 10.28.2 (r769115) FWID 01-d2cbb8fd
[ 3.810242] brcmfmac 0000:02:00.0 wlp2s0: renamed from wlan0
似乎它尝试加载驱动程序,失败了,但随后再次成功。
但是启动日志5.19.0-40-generic
只尝试一次:
$ sudo dmesg | grep brcmfmac
[ 2.667203] usbcore: registered new interface driver brcmfmac
[ 2.667244] brcmfmac 0000:02:00.0: enabling device (0000 -> 0002)
[ 2.775257] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4366c-pcie for chip BCM4366/4
[ 2.792232] brcmfmac 0000:02:00.0: Direct firmware load for brcm/brcmfmac4366c-pcie.ASUS-All Series.bin failed with error -2
[ 2.797133] brcmfmac 0000:02:00.0: Direct firmware load for brcm/brcmfmac4366c-pcie.ASUS-All Series.txt failed with error -2
[ 2.797165] brcmfmac 0000:02:00.0: Direct firmware load for brcm/brcmfmac4366c-pcie.txt failed with error -2
[ 3.773927] brcmfmac 0000:02:00.0: brcmf_pcie_init_ringbuffers: invalid max_flowrings(264)
编辑#2:
结果是5.19.0-40-generic
内核引入了影响我的特定 wifi 适配器的回归。这次提交max_flow_rings
引入了对内部数量的检查brcmf_pcie_init_ringbuffers
,如果超过 256 则返回错误。我的卡要求 264。这个问题在 5.19.0-42 中得到了修复,这次提交。
我不确定更新的正确方法5.19.0-42-generic
,最新版本sudo apt-cache search linux-image-5.19.0-
是5.19.0-40-generic