I am running Ubuntu on a Mac Mini 8,1. "No WiFi Adapter Found" I started on 20.04 and only upgraded to get the latest Linux firmware in the hope of getting the wifi working. I also updated the kernel version to 5.7.1 because in the hope of getting the firmware sorted for this 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
Then I checked if it was loading, and I can see that the firmware is trying to load after the boot which may be the problem.
$ 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]
I think it has everything loaded to do the job but needs to be kick-started maybe? I tried modprobe, but it does not change anything I can see. Please don't suggest any of the old broadcom b43 drivers/fixes as none of them relate to this chip.
There was no reason to install an unsupported release to get Wi-Fi working. The firmware is not located in Linux kernel.
linux-firmware
doesn't have the blob for your device yet.You need to get firmware for your wireless device.
Run in a terminal:
and reboot.
This should fix your issue.
Maybe you need another revision of the firmware. If this is the case it can also be found. If you have MacOS installed, then it is not a big problem to get it from there.