在 Fedora 27 中未檢測到 Broadcom 無線
全新安裝 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。
當我將 Thinkpad X260 從 Fedora 26 升級到 27(晶片組也是 BCM4356)時,我遇到了同樣的問題。感謝RH Bugzilla 的這個錯誤報告,我解決了這個問題
- 我降級到 linux-firmware-20171009-78.gitbf04291.fc27
- 我在安裝 Broadcom-wl 軟體包之前採取了相同的步驟。我在 /usr/lib/modprobe.d/broadcom-wl-blacklist.conf 文件中註釋了 brcmfmac 模組,因此該模組在啟動時自動載入。但我最終刪除了 broadcom-wl 包,因為它不再需要了。
下一個可選步驟是修復 linux-firmware 版本,以避免在問題解決之前進行更新。
簡單的步驟;-)
sudo dnf remove broadcom-wl
sudo dnf install linux-firmware-20171009-78.gitbf04291.fc27
- 並編輯 /etc/dnf/dnf.com 添加下一行:
exclude=linux-firmware*
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 連接仍然會出現。但是,當您嘗試連接時,即使那裡沒有任何問題,它也會不斷詢問您的密碼。