heckin the gibson —
The merge is exciting, but don’t rush out to buy an Apple M1 for Linux just yet.
Jim Salter
–
Asahi Linux—founded by Hector “marcan” Martin—has merged initial support for Apple M1 hardware into the Linux system-on-chip (SOC) tree, where it will hopefully make it into the Linux 5.13 kernel (which we can expect roughly in July).
What’s an Asahi?
Asahi is the Japanese name for what we know as the McIntosh Apple—the specific fruit cultivar that gave the Mac its name. Asahi Linux is a fledgling distribution founded with the specific goal of creating a workable daily-driver Linux experience on Apple M1 silicon.
This is a daunting task. Apple does not offer any community documentation for Apple Silicon, so Martin and cohorts must reverse-engineer the hardware as well as write drivers for it. And this is especially difficult considering the M1 GPU—without first-class graphics support, Asahi cannot possibly offer a first-class Linux experience on M1 hardware such as the 2020 M1 Mac Mini, Macbook Air, and Macbook Pro.
What’s been merged?
Late Thursday night, Arnd Bergmann—co-maintainer of the arm-soc kernel tree—merged an arm/apple-m1 branch into for-next. Linux-next is the holding area for code expected to go into the next kernel merge window, somewhat akin to FreeBSD-HEAD.
The new branch includes the early rudiments of a working Apple M1 boot environment, not everything necessary for a normal operating system. This includes a brand-new bootloader, which uses Apple’s proprietary USB commands.
Once booted, Asahi’s environment currently only provides serial and framebuffer console access—no other driver support is present. Martin describes the process of accessing the serial console as “easiest [using] a second M1 box and a simple USB-C cable,” with the alternative of “build[ing] a DIY interface using an Arduino, a FUSB302 chip or board, and a 1.2V UART-TTL adapter.”
Over the next few weeks, Martin and fellow developers will be working on an open hardware project to provide serial/debug connectivity—hopefully, including support for UART-over-USB-C setups from other vendors as well.
Finally! It’s been a long time coming, but it’s done! This is just basic bring-up, but it lays a solid foundation and is probably the most challenging upstreaming step we’ll have to do, at least until the GPU stuff is done. https://t.co/XP50beZP56
— Hector Martin (@marcan42) April 9, 2021
Making it into for-next
doesn’t actually guarantee that Asahi’s work will land in Linux 5.13. It’s always possible that Linus Torvalds will see something he doesn’t like and kick the can back to Linux 5.14 pending some necessary changes. But in order to land in for-next
in the first place, Asahi’s bootstrap work had to pass reviews from 20+ kernel developers—so a rejection seems unlikely at this point.
So when can I have Linux on my Apple M1?
As exciting as the news of Martin’s work landing upstream might be, don’t rush out to buy an Apple M1 device for Linux use just yet. It has been five months since we tested the first Apple M1 hardware—and it has taken every day of that time to get to a completely vanilla boot environment “just about suitable for debugging.”
It’s impossible to guess how long it will take the Asahi developers to reverse-engineer the M1’s GPU and produce a quality open source driver. Even now it’s not impossible they’ll fail to do so entirely; or for some reason their work might not be accepted upstream.
We’re cautiously excited about the idea of first-class Linux support on the M1, but we absolutely do not recommend buying M1 hardware for that purpose unless and until the Asahi project gets much, much farther down the road than it has managed so far. This isn’t because we doubt Martin—his effort in getting the project as far as it has gotten already is outstanding—it’s just far too early to assume success, let alone success within a concrete timeline.