我在 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,那么从那里获取它并不是什么大问题。