全新安装 Fedora 27后,运行第一次系统更新后未检测到 wifi 卡。经过一些冗长的在线故障排除后,我仍然没有更接近解决方案。
unname -r
4.14.5-300.fc27.x86_64
lspci -vnn -d 14e4:
04:00.0 Network controller [0280]: Broadcom Limited BCM4356 802.11ac Wireless Network Adapter [14e4:43ec] (rev 02)
Subsystem: Lenovo Device [17aa:0777]
Flags: bus master, fast devsel, latency 0, IRQ 18
Memory at f1400000 (64-bit, non-prefetchable) [size=32K]
Memory at f1000000 (64-bit, non-prefetchable) [size=4M]
Capabilities: <access denied>
Kernel modules: brcmfmac, wl
rpm -qa | grep -e 内核 -e broadcom-wl -e kmod-wl | 种类
abrt-addon-kerneloops-2.10.5-1.fc27.x86_64
akmod-wl-6.30.223.271-15.fc27.x86_64
broadcom-wl-6.30.223.271-3.fc27.noarch
kernel-4.13.9-300.fc27.x86_64
kernel-4.14.5-300.fc27.x86_64
kernel-core-4.13.9-300.fc27.x86_64
kernel-core-4.14.5-300.fc27.x86_64
kernel-debug-devel-4.14.5-300.fc27.x86_64
kernel-devel-4.13.9-300.fc27.x86_64
kernel-devel-4.14.5-300.fc27.x86_64
kernel-headers-4.14.5-300.fc27.x86_64
kernel-modules-4.13.9-300.fc27.x86_64
kernel-modules-4.14.5-300.fc27.x86_64
kernel-modules-extra-4.13.9-300.fc27.x86_64
kernel-modules-extra-4.14.5-300.fc27.x86_64
kmod-wl-4.13.9-300.fc27.x86_64-6.30.223.271-15.fc27.x86_64
kmod-wl-4.14.5-300.fc27.x86_64-6.30.223.271-15.fc27.x86_64
libreport-plugin-kerneloops-2.9.3-1.fc27.x86_64
我已经安装了正确的内核开发包:
sudo dnf install kernel-devel-4.13.9-300.fc27.x86_64
除了启用 RPM 融合:
sudo dnf install -y https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-27.noarch.rpm https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release- 27.noarch.rpm
安装了 broadcom-wl 和 kmod-wl
sudo dnf install -y broadcom-wl kmod-wl
运行 akmods 命令:
sudo akmods --force --kernel 4.13.9-300.fc27.x86_64 --akmod w
Checking kmods exist for 4.13.9-300.fc27.x86_64 [ OK ]
运行 depmod:
sudo depmod -a
(没有错误)
最后是 wl 上的 modprobe:
sudo modprobe wl
(没有错误)
都没有成功。有谁知道如何解决这个问题?我已经看到一些较旧的线程记录了类似的问题,但在我的情况下似乎没有一个被接受的解决方案。
编辑 1
经过一番搜索,我发现我应该为我的卡加载的内核模块是 brcmfmac4356。
跑步:
modprobe -r brcmfmac
和
modprobe brcmfmac
不产生任何输出,但调用 lsmod 后 brcmfmac 无法显示。检查 dmesg 显示:
[ 8488.780453] brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac4356-pcie.bin for chip 0x004356(17238) rev 0x000002
[ 8488.782147] brcmfmac 0000:04:00.0: Direct firmware load for brcm/brcmfmac4356-pcie.txt failed with error -2
[ 8491.291361] brcmfmac: brcmf_msgbuf_query_dcmd: Timeout on response for query command
[ 8491.291376] brcmfmac: brcmf_c_preinit_dcmds: Retreiving cur_etheraddr failed, -5
[ 8491.291383] brcmfmac: brcmf_bus_started: failed: -5
[ 8491.291398] brcmfmac: brcmf_pcie_attach_bus: dongle is not responding
我不知道该怎么做,但当我有时间深入挖掘时会提供进一步的更新。
编辑 2 和丑陋的修复
我现在有一个工作无线接口,通过在此处查找据称丢失的文件 brcm/brcmfmac4356-pcie.txt ,将其粘贴到 /lib/firmware/brcm/ 并运行:
modprobe brcmfmac
这感觉就像一个黑客,我想知道为什么 brcm/brcmfmac4356-pcie.txt 不存在。这是一个错误并且来源错误的文件吗?
虽然我现在有一个可用的 WiFi 连接,但我非常想了解问题的根源。
编辑 3
上述修复在重新启动后不会持久,需要我在无线接口可见之前执行 modprobe brcmfmac。
lspci | grep Network
在更新 Fedora 27 并随后升级到 Fedora 29 后,我在 BCM43142 上遇到了类似的问题(您可以通过以下操作确认您拥有这张卡:) 。问题出在 Linux 固件上。20181008固件升级后wifi就不能用了。以下是我恢复wifi的步骤:sudo dnf downgrade linux-firmware
sudo dnf install broadcom-wl
exclude=linux-firmware*
到/etc/dnf/dnf.conf
请注意,如果您只是安装了 broadcom-wl 而没有先降级固件,您的 wifi 连接仍然会出现。但是,当您尝试连接时,即使那里没有任何问题,它也会不断询问您的密码。
当我将 Thinkpad X260 从 Fedora 26 升级到 27(芯片组也是 BCM4356)时,我遇到了同样的问题。感谢RH Bugzilla 的这个错误报告,我解决了这个问题
下一个可选步骤是修复 linux-firmware 版本,以避免在问题解决之前进行更新。
简单的步骤;-)
sudo dnf remove broadcom-wl
sudo dnf install linux-firmware-20171009-78.gitbf04291.fc27
并编辑 /etc/dnf/dnf.com 添加下一行:
exclude=linux-firmware*
我在使用 BCM4356 的华为 Matebook 上的 Antergos/Arch 上遇到了同样的问题,
lspci | grep Network 01:00.0 Network controller: Broadcom Limited BCM4356 802.11ac Wireless Network Adapter (rev 02)
问题在内核更新几个月后开始出现,但我不确定是哪一个,但看起来与上次更新brcmfmac4356-pcie.bin 一致(2017 年 11 月 25 日的 1841cec)
将您提供的 brcmfmac4356-pcie.txt 复制到 /lib/firmware/brcm/ 为我解决了重启后的问题。
这个人使用他对 BCM4320 解决方案的评论让他的 BCM43142 工作。
希望您的 BCM4356 也能正常工作。
Broadcom 无线 PCI 卡 BMC4360 14e4:43a0 无法使驱动程序正常工作