Back in January, we got our first glimpse at the M1 running desktop Linux thanks to the team at Corellium. While that was a great achievement, it did have a lot of drawbacks, such as no access to the internal storage and no GPU driver.
Now, Asahi Linux has just reached a major milestone in terms of getting the M1 usable as a desktop Linux computer: A working GNOME desktop. Unlike the previous achievement by Correllium, this breakthrough utilises a new GPU driver and double-buffering.
Read on for a dive into what this means and how it impacts the status of Linux on the M1.
Gnome On The M1
Alyssa Rosenweig, who has been working on reverse-engineering the M1’s GPU for more than 7 months, recently posted a tweet showing Gnome desktop running on “bare-metal” M1 hardware.
In the screenshot attached in the tweet, she revealed that she is using Debian 11 with Gnome 3.38.4 and a pre-release version of Linux 5.14. Later, she went on to say that this was running on the mainline kernel, with just three modifications. These were:
- Pin controller patches (Corellium and Joey Gouly)
- PCIe patches (Marc Zyngier and Mark Kettenis)
- Work in progress display driver (myself)
Honestly, I am quite amazed that this is running with so few modifications, especially when considering the closed nature of the M1. It really is incredible.
How This Is Different To The January Demo
Back in January, Corellium showed off Ubuntu running on the M1. Unlike that demo, Asahi’s implementation uses double buffering, where the display uses different on and off-screen framebuffers.
In an interview with The Review, she said, “The older demos rely on Apple’s bootloader allocating a framebuffer and configuring the display hardware to use it. This ‘single buffering’ setup is prone to graphics artefacts like tearing,”
She later went on to say, “Tearing is reduced with ‘double buffering’, where the display driver allocates separate on-screen and off-screen framebuffers. The on-screen buffer is displayed while the off-screen buffer is rendered to. Each frame, the roles are swapped, presenting the rendered frame instantly.”
The result of all this double buffering is a much smoother experience, with far less artefacting compared to January’s demo. This is quite incredible when you consider that Apple guards framebuffers behind a proprietary IOMMU (Input-output memory management unit), for which a driver was written and merged into the mainline kernel by Sven Peter, another member of Asahi.
Overall, this progress is absolutely incredible and really shows the dedication and skill of the Asahi team. Between the new IOMMU and display drivers, it appears that Asahi Linux will soon be ready for the end-consumer. Now we just have to wait to see how the M1X will impact this project…