如何使用 brcmfac 驱动程序和固件在 BCM4364 上激活 wifi?

如何使用 brcmfac 驱动程序和固件在 BCM4364 上激活 wifi?

我在 Mac Mini 8,1 上运行 Ubuntu。“未找到 WiFi 适配器”我从 20.04 开始,只升级以获取最新的 Linux 固件,希望 wifi 能够正常工作。我还将内核版本更新为 5.7.1,因为希望为这个 BCM4364 整理固件。

$ lspci -vvnn | grep -A 9 Network
03:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries BCM4364 802.11ac Wireless Network Adapter [14e4:4464] (rev 03)
    Subsystem: Apple Inc. BCM4364 802.11ac Wireless Network Adapter [106b:07bf]
    Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort+ <TAbort- <MAbort- >SERR- <PERR- INTx-
    Interrupt: pin A routed to IRQ 16
    Region 0: Memory at 81400000 (64-bit, non-prefetchable) [size=32K]
    Region 2: Memory at 81000000 (64-bit, non-prefetchable) [size=4M]
    Capabilities: <access denied>
    Kernel modules: brcmfmac

然后我检查它是否正在加载,我可以看到固件在启动后尝试加载,这可能是问题所在。

$ dmesg | grep brcmfmac
[    6.373544] usbcore: registered new interface driver brcmfmac
[    6.392893] brcmfmac 0000:03:00.0: enabling device (0000 -> 0002)
[    6.501153] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4364-pcie for chip BCM4364/3
[    6.560328] brcmfmac 0000:03:00.0: Direct firmware load for brcm/brcmfmac4364-pcie.bin failed with error -2
[    6.576825] Modules linked in: snd_seq_midi_event snd_rawmidi snd_seq snd_seq_device mei_hdcp snd_timer intel_rapl_msr intel_rapl_common x86_pkg_temp_thermal intel_powerclamp brcmfmac coretemp snd brcmutil hci_uart btqca cfg80211 btrtl kvm_intel btbcm applesmc(+) kvm btintel intel_cstate intel_rapl_perf joydev efi_pstore input_leds soundcore 8250_dw intel_pch_thermal bluetooth mei_me mei ecdh_generic ecc acpi_tad mac_hid sch_fq_codel parport_pc ppdev lp parport ip_tables x_tables autofs4 btrfs blake2b_generic xor raid6_pq libcrc32c hid_logitech_hidpp hid_logitech_dj hid_generic usbhid uas hid usb_storage crct10dif_pclmul crc32_pclmul ghash_clmulni_intel i915 aesni_intel crypto_simd cryptd glue_helper i2c_algo_bit drm_kms_helper syscopyarea sysfillrect nvme sysimgblt fb_sys_fops intel_lpss_pci cec intel_lpss i2c_i801 idma64 rc_core virt_dma nvme_core tg3 drm thunderbolt video
[    6.576866]  brcmf_fweh_detach+0x19/0x70 [brcmfmac]
[    6.576871]  brcmf_detach+0x78/0x100 [brcmfmac]
[    6.576877]  brcmf_pcie_remove+0x78/0x110 [brcmfmac]
[    6.576888]  brcmf_pcie_setup+0x25/0x490 [brcmfmac]
[    6.576892]  brcmf_fw_request_done+0x71/0x100 [brcmfmac]
[    6.576914] WARNING: CPU: 1 PID: 158 at drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c:309 brcmf_fweh_detach+0x60/0x70 [brcmfmac]
[    6.576915] Modules linked in: snd_seq_midi_event snd_rawmidi snd_seq snd_seq_device mei_hdcp snd_timer intel_rapl_msr intel_rapl_common x86_pkg_temp_thermal intel_powerclamp brcmfmac coretemp snd brcmutil hci_uart btqca cfg80211 btrtl kvm_intel btbcm applesmc(+) kvm btintel intel_cstate intel_rapl_perf joydev efi_pstore input_leds soundcore 8250_dw intel_pch_thermal bluetooth mei_me mei ecdh_generic ecc acpi_tad mac_hid sch_fq_codel parport_pc ppdev lp parport ip_tables x_tables autofs4 btrfs blake2b_generic xor raid6_pq libcrc32c hid_logitech_hidpp hid_logitech_dj hid_generic usbhid uas hid usb_storage crct10dif_pclmul crc32_pclmul ghash_clmulni_intel i915 aesni_intel crypto_simd cryptd glue_helper i2c_algo_bit drm_kms_helper syscopyarea sysfillrect nvme sysimgblt fb_sys_fops intel_lpss_pci cec intel_lpss i2c_i801 idma64 rc_core virt_dma nvme_core tg3 drm thunderbolt video
[    6.576932] RIP: 0010:brcmf_fweh_detach+0x60/0x70 [brcmfmac]
[    6.576942]  brcmf_detach+0x78/0x100 [brcmfmac]
[    6.576946]  brcmf_pcie_remove+0x78/0x110 [brcmfmac]
[    6.576954]  brcmf_pcie_setup+0x25/0x490 [brcmfmac]
[    6.576958]  brcmf_fw_request_done+0x71/0x100 [brcmfmac]

我认为它已经加载了所有可以完成工作的东西,但可能需要启动?我尝试了 modprobe,但它并没有改变我所看到的任何东西。请不要推荐任何旧的 broadcom b43 驱动程序/修复程序,因为它们都与此芯片无关。

答案1

没有理由安装不受支持的版本来使 Wi-Fi 正常工作。固件不在 Linux 内核中。linux-firmware尚未拥有适合您设备的 blob。

您需要获取无线设备的固件。

在终端中运行:

wget https://packages.aunali1.com/apple/wifi-fw/18G2022/C-4364__s-B2/kauai.trx
sudo cp kauai.trx /lib/firmware/brcm/brcmfmac4364-pcie.bin

然后重新启动。

这应该可以解决你的问题。

也许您需要另一个固件版本。如果是这种情况,也可以找到它。如果您安装了 MacOS,那么从那里获取它并不是什么大问题。

相关内容