I promise this isn’t a rant or cry for help; I’m just sharing an interesting observation that the Linux community might appreciate. Please know I’m comfortable and knowledgeable enough to be dangerous on any platform, though I generally prefer Unix/Linux and macOS over Windows. I inherited an obsolete, under-powered MacBook Air (Intel i5, 4G RAM, 128G SSD) and I’ve been testing virtually every popular distro on it for the last few months. I encountered the same Linux shortcoming across every distro, and I thought some of y’all might find this mildly interesting.
There seems to be an underlying issue running Linux on MacBooks, stemming from the fact that MacBooks require a kernel module with proprietary firmware blobs to support their Broadcom wifi & bluetooth hardware. Now, the Broadcom module is readily available in every standard package manager, but it will never be included in the mainstream kernel since it contains closed source software. For distros with a self-contained installer, this is not a huge problem at first - just download and install the appropriate Broadcom package separately to patch your kernel after installation and you should be good, right?
No. Trouble is the kernel and other packages (but mostly kernel) get updated constantly, seemingly without regard to existing kernel module compatibility. Depending on the distro, that Broadcom package might be weeks or even months behind the latest kernel release. The effect of this is that it’s never safe to just run software updates on a MacBook, because you’re playing roulette with your wifi hardware every time. Desktops with ethernet are easier to recover from because it’s easy to plug in, but for a laptop relying on wifi it’s a much bigger hassle when your wifi breaks.
Obviously you can just revert to a prior kernel then pin the working kernel version in place, but held packages like your kernel impact other software as well. Simply running Linux on MacBook hardware generates this ongoing cycle of issues over the proprietary software blobs required for the hardware. Typical designed-for-Windows devices face this issue far less frequently, so the added hurdle for MacBooks feels mostly ignored by the general Linux community.
This makes rolling release distros particularly problematic on MacBooks, which is really a shame. Even an atomic distro like Bazzite (which provides that Broadcom module right out of the box, by the way) breaks a MacBook’s wifi sooner or later if you install updates normally. I thought I was clever running Kali Linux for awhile. It runs really nicely on this meager hardware and KDE felt zippier than many other distros. I still had to manually install the Broadcom driver after installation, but with a Debian back-end I was really hoping it would pull delayed enough releases to keep the wifi working… it did not. Kali runs a rolling release based on Debian Testing, which still pulls recent enough kernel updates to break the wifi.
Many Arch-based distros won’t even install (btw), because the install images require a working networking stack, relying solely on the kernel’s built-in hardware support. I’m certain there are workarounds, but there’s no obvious, easy way for casual users to inject the required Broadcom module into the downloaded installer. Sadly, the best long term solution I’ve found is to just stick to annual, major LTS release distros like Debian Stable where enough time passes after most package updates that my cursed Broadcom module has had sufficient time for the dev to catch up.
Don’t get me wrong, I’ve been running Debian + KDE on my older-but-much-beefier MacBook Pro for years now, and it’s been a constant source of pleasure to use. I just thought I’d share a little about the unique challenges of a Linux fan who happens to own some aging Mac hardware. Someone here probably knows an obvious solution to make this far easier for the average user. I’m not begging anyone for help, though I certainly welcome your comments. In any case, I hope you enjoyed this read. Mac hardware would be really nice to run Linux if it weren’t for this module annoyance.
I was lucky enough to have a chip that’s compayible with
brcfmacone. So on vanilla Arch it works out of the box. On some distros, they load a different module, that does not work with my chip, so I had to fix that way back when using Enedavour OS.2016 Macbook Pro btw
Also, in all honesty, not having bios access or well documented UEFI settings is bigger pain. Searching how to disable autoboot on lid opening was fun.
Maybe I’m lucky but my 2017-era MacBook Air (7,2) with i7 chip and 8GB RAM works great with Ubuntu. When I tried Debian I had to do the separate broadcom driver install and I didn’t really like Debian anyway and so went back to Ubuntu (now on 24.04.3 LTS) and this machine does everything I want/need it to do “out of the box.”
yeah, ubuntu’s good for that. annual LTS cycles (used by distros like ubuntu and debian) are exactly how to sidestep the issue I’m referring to
I think you’re using obsolete closed-source drivers that require external patches for each new kernel version. So the situation is entirely Broadcom’s fault.
From the Gentoo ebuild for broadcom-sta:
If you are stuck using this unmaintained driver (likely in a MacBook), you may be interested to know that a newer compatible wireless card is supported by the in-tree brcmfmac driver. It has a model number BCM943602CS and is for sale on the second hand market for less than 20 USD.
a common suggestion has been to replace the hardware. my intent here was just to shed some light on the fact that kernel updates frequently break modules like this one, which I suspect folks with more compatible hardware may not be as aware of. if you buy Linux-friendly hardware to begin with, Linux life is super chill. That’s not always the case with old, hand-me-down hardware though.
Well, Apple hardware is a bit of a footgun in general. It isn’t in their best interests for people to repurpose their old hardware (they want you to buy shiny new hardware and make them money), so they don’t exactly go out of their way to make it easy. Driver availability outside their software ecosystem simply doesn’t enter into consideration when they’re designing a product. Nor does the ability to swap out a component for something with a different chipset. They’ve been that way since the mid-1980s.
Yeah it’s important to know that the first step in an issue free experience on Linux is just getting the right computer.
Still nothing beats a free computer and I’m really happy to have my wifés old MacBook Pro running Fedora for some tasks that my daily driver can’t do. Luckily the broadcom issues happens around once every 2 years for me and not with every update.
And my daily driver, a Microsoft Surface Go hooked to a big screen has other issues, like sometime being really slow when it’s usually quite fast for such low end hardware.
When I’ll inevitably have to replace these, I’ll try to find more suitable Linux friendly second hand devices…
If you’re having trouble with proprietary hardware networking and bluetooth, I wonder if the some USB hardware from ThinkPenguin would help you with that. Namely the wireless dongle and the bluetooth one, both of which don’t rely on proprietary blobs and work with fully free systems out of the box. Not exactly the cheapest thing to outfit on inherited, old systems at ~$50 each, however.
that’s a fair point I hadn’t really considered. it’s a kinda dumb reason to roll dual wifi hardware and I’d hate to give up one of only two usb ports, but that would technically solve my complaint. def worth considering!
Broadcom is a curse in wireless stuff, can confirm.
What year?
I have several Mac laptops running Linux with hardware from 2012 to 2020. I find that EndeavourOS works best and WiFi works out of the box.
It uses the wl drivers generally (NOT b43) with DKMS so the module is automatically rebuilt when you upgrade the kernel. You can just upgrade the kernel using the package manager and it “just works” when you reboot. I have been using Linux on MacBook Pro and MacBook Air systems for years and never had a problem (2012, 2013, 2017, 2020). Also iMacs back to 2008.
If you have a T2 chip system, you need a special kernel and apple an wifi/bluetooth firmware blob. In most distros you have to extract the firmware from macOS yourself but it is available in the AUR so there is a special T2 addition of EndeavourOS that makes everything work out of the box. These are the 2019 or 2020 systems I think.
with DKMS
Exactly what I was going to suggest here. This is the way to deal with it (and “it” is usually pain in the ass WiFi)
I own 3 Macbook Airs, running Linux. The solution was simple: buy a $6 TP-Link wifi usb stick, which is tiny, and it solved all my problems (same for BT). I used to have crashing problems with the linux AND the official broadcomm wifi driver, or the laptop wouldn’t wake up from sleep etc. I just blacklisted all that, and I use the tp-link one. Sure, it eats away 1 usb port, but it’s no biggie. No more crashes, or not waking up properly.
I was just coming to suggest this. Linux users are built different lol. My touchpad doesnt work. Buy a mouse. Display doesnt work. Its a headless server. Wifi is messed up. Buy a usb stick. If you can boot, that computer is golden
Just had to add: the PC is poverty of someone else and has encrypted win 11 on it. Use a 3.2-usb-stick with a shim compatible installed linux-distro on it (fedora/ubuntu).
yeah, a common suggestion has been to just replace the hardware.
what you describe would be an ardous journey… if the mentioned macbooks cost like $500. or $1000. truly, that sorta thing is nothing short of masochistic and no sane person should bother with that.
you’re making broad statements based on very shitty hardware - 4 gig dual-core laptop isn’t a very representative experience when you can get solid workstations for pocket change.
the macbooks I get are in the $20 region and for that kinda “money” I get absolute top-notch quality hardware, that, although dated, is more than adequate for the vast majority of uses. spending a coupla minutes to tweak it post-install isn’t a huge price to pay.
here’s my headless 2014 MBP (i7-4770HQ with 16 GB, Intel Iris) doing its thing. was sold “for parts” due to busted screen for $25 ($40 asking).

so, yeah, dicking around with broadcom’s stack is a thing, but it’s a thing that you do once and then it just works. I’m as bleeding edge as reasonably possible (F43) on all models I run and I haven’t got any issues, akmod builds the driver on every kernel install, which if you’re doing actual work on the thing isn’t something you’re doing often.
as to how to install without LAN, you use your Android phone and tether its Wifi via USB. after five minutes (full system upgrade, install broadcom-wl via rpmfusion for e.g. Fedora) you’re done. or, use the netinstall thing the same way. there’s also a buncha stuff needed to make the experience better (undervolt, LID0 wake events, etc)
not sure about Airs but MBP 2015 models (possibly 2013/14 as well) can be retrofitted with a $5 adapter board that lets you fit a regular Intel M.2 NGFF in there, eliminating the tainted kernel issue.
you certainly make a good point, and replacing the hardware has definitely been a popular suggestion. fwiw, this MB Air was just a free hand-me-down, so I’m specifically using it to distro hop and fart around with different Linux distros on old Mac hardware that I have no attachment to
The only time I’ve had issues with these, was because of firmware whitelisting in the bios. It wasn’t with mac hardware though, because I don’t hate myself that much.
Lenovo
I’ve had good luck with Fedora on a 2013 MacBook Air. Granted I need the nonfree repository, but it does the job.
good to hear! my interest in Fedora was largely aimed at Bazzite, so I didn’t really test vanilla Fedora
thanks for the tips! I am trying to run nixoa on an old Intel iMac and wireless and sounds are broken. I will search for the Broadcom driver you mentioned.
I don’t have an apple computer, but have you tried nixos-hardware? https://github.com/NixOS/nixos-hardware It has lots of configurations for different hardware configurations.
this looks incredibly helpful; thank you!
I will read the instructions and try it out.
Debian Stable staying true to form!
Thanks for the writeup. Good stuff.
I am running macbook air mid 2012 with Linux mint with installed closed source driver from mint driver manager and works fine without fearing me to update since mint based on Ubuntu LTS
yeah, distros with LTS release cycles are exactly how to address this issue. I just wanna play more with rolling releases and atomic distros, lol
See my other post. EndeavourOS works out of the box on MacBooks before 2019. This is with vanilla EOS.
For 2019 and 2020 Intel MacBooks, there is a T2 version of EndeavourOS that includes a custom kernel that again makes everything work after a fresh install. You can just use the package manager after that and it all keeps working, even across kernel updates.
Interesting. I actually tested Endeavour OS on this MB Air specifically (as well as my main MB Pro, but several years back) and the wifi was not natively supported out of the box. I was able to get it working by installing the broadcom module, but it still broke with the next kernel update. Another commenter has suggested replacing the broadcom driver with Intel iwd; I need to give that a shot. Endeavour seems a very approachable way to run Arch on MacBook hardware if I can solve this wifi problem more permanently.
Could you write a bash script that snags the latest module for Broadcom hw and alias it to run b4 any apt / yum / pacman runs?
very possibly! I’m not 100% certain what is actually breaking there that seemingly gets solved after “some time” has passed. you might be on to something!
It is indeed a pain to use on Linux. We have a similar (maybe the same) Macbook Air and recently I had to deal with the same thing to make it usable. I have tried many different distros, and most of the time I had to install the
broadcom-wldriver via phone-tethering. Installing or even usingdkmsversion is not the only problem too, the driver is also awful. The distro I settled was LMDE, surprisingly it was the only distro that came with Broadcom drivers, which was a plus at first. However it deteriorated so fast as you described, I had to find a permanent solution. My solution was completely ditchingbroadcom-wldrivers in favour of Intel’siwddriver.iwdalso has performance issues time to time, but at least disabling/re-enabling it solves the issue, unlike had to restart the Macbook withbroadcom-wl.I also tried to replace the Broadcom Wi-Fi module by opening the back cover of Macbook since I had a Wi-Fi card laying around, but sadly the one on Macbook was not a nowadays’ standard M2 unit, so couldn’t done it.
I was not even aware there was an alternate driver option. I definitely need to look into that; thanks!
No problem!
Yeah, it took me kinda long to find about it as well. By the way, if you decide to install it, don’t forget to also install a GUI for it, something like
iwgtkfor example. Good luck!







