Unable to use Broadcom BCM4377b wireless card on 2019 Intel MacBook Air running Fedora 38

Hey all! I’ve got a 2019 Intel-based MacBook Air which I haven’t had a use for since it runs macOS. Recently, I decided to fully install Fedora on the drive, which was a bit challenging. However, I’ve found that the T2Linux custom Fedora kernel fixed most of the problems, as well as Fedora 39 nightly with installing the EFI.

I’ve had some success, with working trackpad, keyboard, ambient light sensor, and USB. However, WiFi does not seem to work. My device has the Broadcom BCM4377b, which does not want to cooperate. In a related topic, I found users with similar models struggling in a similar way. Another user was asked by @gnwiii to post the output of ls -lZ /lib/firmware/brcm/brcmfmac4377b3. I have no such directory. My model is slightly different, though. Mine doesn’t have the 3 at the end. Still, running ls -lZ /lib/firmware/brcm/brcmfmac4377b, or b4 reveals no such file or directory. The closest I have is for 4371 and 4373. So, this must be missing firmware?

According to this page on “Linux for Hardware”, my device should be supported by Kernel 6.3 and up. I’m on 6.5.6-200.t2.fc38.x86_64. Also, according to this page on “Tutorial for Linux”, it is supported by broadcom-wl, but “Currently may require a T2 Kernel+Firmware” (which I have).

The WiFi also does not work on Fedora 39, which I tested first, despite the kernel allegedly supporting it. This leaves me here, with sources telling me that simply installing and enabling broadcom-wl is enough, and others telling me the kernel itself supports it. Either way, I have no WiFi, so I’m really hoping someone can help. Perhaps I’ve just done it all wrong or something.

sudo journalctl -k --grep=brcmfmac gives me:

Oct 19 17:45:10 fedora kernel: usbcore: registered new interface driver brcmfmac
Oct 19 17:45:10 fedora kernel: brcmfmac 0000:73:00.0: enabling device (0000 -> 0002)
Oct 19 17:45:11 fedora kernel: brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4377b3-pcie for chip BCM4377/4
Oct 19 17:45:11 fedora kernel: brcmfmac 0000:73:00.0: Direct firmware load for brcm/brcmfmac4377b3-pcie.apple,fiji-SPPR-u-3.1-X0.bin failed with error -2
Oct 19 17:45:11 fedora kernel: brcmfmac 0000:73:00.0: Direct firmware load for brcm/brcmfmac4377b3-pcie.apple,fiji-SPPR-u-3.1.bin failed with error -2
Oct 19 17:45:11 fedora kernel: brcmfmac 0000:73:00.0: Direct firmware load for brcm/brcmfmac4377b3-pcie.apple,fiji-SPPR-u.bin failed with error -2
Oct 19 17:45:11 fedora kernel: brcmfmac 0000:73:00.0: Direct firmware load for brcm/brcmfmac4377b3-pcie.apple,fiji-SPPR.bin failed with error -2
Oct 19 17:45:11 fedora kernel: brcmfmac 0000:73:00.0: Direct firmware load for brcm/brcmfmac4377b3-pcie.apple,fiji-X0.bin failed with error -2
Oct 19 17:45:11 fedora kernel: brcmfmac 0000:73:00.0: Direct firmware load for brcm/brcmfmac4377b3-pcie.apple,fiji.bin failed with error -2
Oct 19 17:45:11 fedora kernel: brcmfmac 0000:73:00.0: Direct firmware load for brcm/brcmfmac4377b3-pcie.bin failed with error -2
Oct 19 17:45:11 fedora kernel: brcmfmac 0000:73:00.0: brcmf_pcie_setup: Dongle setup failed

And lspci | grep Wireless gives me:

73:00.0 Network controller: Broadcom Inc. and subsidiaries BCM4377b Wireless Network Adapter (rev 04)

Lastly, I’ve followed the advice of @vgaetera and enrolled the MOK key for akmods. Still, not working despite that being successful. There is an article by T2Linux about WiFi/Bluetooth, but it requires use of macOS, which I don’t have and don’t want. I just want this to be a normal laptop, and would rather not need to dual boot a malicious operating system. I’ll only do this as a last resort.

I’ve done a lot of DDG searching on this issue, and have almost completely come up short. That’s why, for my sake, and the sake of everyone else searching on the internet, I hope we can figure this out. Eventually, the 2019 MacBook Air will reach EOL with Apple, and I’d like for Linux to be an option. Thanks in advance for any help you are able to provide!

HUGE THANKS to @soennchen for this solution!!

First of all, I recommend using T2Linux’s custom Fedora installer. It is virtually identical to the normal Fedora ISO, except it uses a patched kernel that fixes the EFI boot issues, and adds drivers for things like the touchpad and keyboard. Also, it removes the extremely loud “BONG” sound effect that plays when you start the PC up.

Here’s the solution, clone this repo, either with a USB ethernet adapter (preferred), or onto a USB drive using another computer.
Screenshot from 2023-10-22 16-10-23

Then, using a terminal, copy all the driver files to the firmware folder like so:

sudo cp /path/to/Apple-Firmware/lib/firmware/brcm/* /lib/firmware/brcm/

Now, reboot. If WiFi doesn’t work immediately after reboot as it didn’t for me, install the akmods package. Then, follow the steps in this manual (thanks @vgaetera!) to enroll the MOK key. If you are struggling to follow these instructions, here’s the quick rundown:

sudo dnf install -y akmods
sudo /usr/sbin/kmodgenca -a -f
sudo mokutil --import /etc/pki/akmods/certs/public_key.der

(when prompted, enter a password you can remember)

reboot

On reboot, you will see a simple menu. Select Enroll MOK.

On the next screen, select Continue.

Now, select Yes.

When prompted, enter the password you chose above.
WARNING: keyboard is mapped to QWERTY! (that’s the United States one)

Finally, click Reboot.

Just in case, you can run sudo akmods.

You will likely get, No akmod packages found, nothing to do. [ OK ], but that doesn’t matter.

Hooray! We should now have working WiFi! The only issue I’ve had is that apparently the WiFi seems to disrupt suspend, so the device pretty much never sleeps. Not a deal breaker for me, at least I don’t need to use a fruity OS on my laptop! There’s probably a fix for that, but I don’t know it, and it’s neither here nor there for the scope of this topic. Hope this helps!

1 Like

Glad to read you got it working.

I’ve been having a similar issue, but with the bluetooth. Was wondering if you’ve tested bluetooth at all since getting wifi working?

Any issues with bluetooth? Which kernel are you running?

Thanks. :slight_smile:

Hi. Just tested for you. Bluetooth didn’t show up when I first turned on my device. I ran the updates, rebooted, and it showed up. So, seems flaky. Also, I cannot turn it on. The toggle switch is there, but when I click it, it instantly snaps back to the off position. I’m guessing there is further configuration needed, or perhaps the newer kernels are being problematic with it.

My Fedora is F38, and the kernel is 6.5.8-200.t2.fc38.x86_64. I’m using the T2Linux variant of Fedora, which is just the stock Fedora release (installer ISO) bundled with their custom T2 kernel. You can also install the kernel manually. Basically, T2Linux provides additional patches useful for the Apple computers with T2 security chips. Has various fixes, enables keyboard and trackpad, disables noisy boot chime.