Wifi

在 Fedora 27 中未檢測到 Broadcom 無線

  • November 3, 2018

全新安裝 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 版本,以避免在問題解決之前進行更新。

簡單的步驟;-)

  1. sudo dnf remove broadcom-wl
  2. sudo dnf install linux-firmware-20171009-78.gitbf04291.fc27
  3. 並編輯 /etc/dnf/dnf.com 添加下一行:

exclude=linux-firmware*

lspci | grep Network在更新 Fedora 27 並隨後升級到 Fedora 29 之後,我在 BCM43142 上遇到了類似的問題(您可以通過以下操作確認您擁有這張卡:) 。問題出在 Linux 韌體上。20181008韌體升級後wifi就不能用了。以下是我恢復wifi的步驟:

  1. sudo dnf downgrade linux-firmware
  2. sudo dnf install broadcom-wl
  3. 加:exclude=linux-firmware*/etc/dnf/dnf.conf
  4. 重啟

請注意,如果您只是安裝了 broadcom-wl 而沒有先降級韌體,您的 wifi 連接仍然會出現。但是,當您嘗試連接時,即使那裡沒有任何問題,它也會不斷詢問您的密碼。

引用自:https://unix.stackexchange.com/questions/411489