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 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.
yeah, a common suggestion has been to just replace the hardware.
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
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
but held packages like your kernel impact other software as well
Well… I’d be interested to hear what user-space impacts you’ve experienced from running a kernel that’s “weeks or even months behind the latest kernel .”
Sorry, I think you misunderstood me. My point is that holding back the kernel indefinitely is an issue, especially in a rolling release distro. the broadcom module is always significantly behind the kernel, so allowing the kernel to upgrade in a rolling release cycle will frequently break wifi that relies on that module. However, another commenter has suggested that broadcom module might be replaced by the intel iwd driver, which I’m definitely going to try.
the broadcom module is always significantly behind the kernel
Right, but if it’s not unmaintained then you only have to wait a finite amount of time before you get to update your kernel again yes?
True. but you have to keep a much closer eye on when it’s safe to update. that was my solution while running Debian Sid (unstable) on my other MacBook for awhile (I really wanted KDE 6 before Trixie was officially released), but believe me this approach gets old. I eventually relented and set it to Debian Stable once Trixie was official. I’m looking for a more stable approach to a rolling release cycle that allows the kernel to upgrade when it’s available, without also breaking the wifi. another commenter suggested the broadcom module might be replaced by the intel iwd driver, which I definitely need to try.
So would I. I once ran a kernel a couple of years in arrears for a while, with everything else up-to-date, and had no userspace issues whatsoever. Granted, this was not on a Macbook, and I was using Gentoo.
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.
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.
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
man this brings back memories.
i was able to install Arch on my 2012 Macbook Pro, but the networking was a huge issue. not only did the driver cause terrible screen tearing for some inexplicable reason, but i had the same problem even getting the dang thing installed. luckily i’m an Android developer and was able to share wifi over USB with an Android device.
This post interests me. I have an old af MacBook air and considering wiping the old MacOS and install Linux.
Please do! For stability’s sake, I recommend installing a distro that follows an annual, stable release cycle such as Debian or Linux Mint. Mint famously has the required support for most hardware right out of the box, allowing for a easy experience.
I’m old and dumb, and will attempt with a BSD distro first before I use a Linux distro. Have had better luck in the past with that route for dogshit driver support on various devices.
I’m also on not-quite-supported hardware (surface pro 6) and I feel your pain. We have a special kernel for most of the functionality, but neither camera.
At this point, I’m grateful for a commodity x86_64 tablet with most everything else working perfectly, so it’s a small price.
This sounds like a bug in the distro packaging of the module, or maybe in Grub. You don’t want to try and install any kernel package, or make your default boot option any kernel package, that the wifi driver package doesn’t declare compatibility with.
But nobody’s package manager knows to do this by default when the driver package is installed, and most packaging systems might not even be able to articulate that constraint.
If kernel updates can break the Broadcom driver try using the lts kernels instead.
indeed, distros that follow an annual LTS cycle definitely avoid the issue
I just looked it up, and it seems a lot of the pre-Apple Silicon MacBook had swappable airport cards that used a completely standard mini PCIE slot. From a cursory google search, it looks completely possible to swap in something like an Intel Wi-Fi card that is supported natively by the kernel.
A mini-PCIE Wi-Fi modem can be had for not too expensive, around the $30 range; in fact, if you have a good stack of old Wintel laptops, one of those might have a card that works well. In fact, I did that with my sister‘s laptop (although she was using Windowd) – her Realtek Wi-Fi card was causing endless misery, so I ripped the Intel modem out of an ultra book from circa 2016 and put it in her laptop. No more issues.
Debian Stable staying true to form!
Thanks for the writeup. Good stuff.
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
Broadcom is a curse in wireless stuff, can confirm.






