Linux on Apple Silicon Takes Giant Leap With Driver Updates

Apple prepares M2 Mac Pro
(Image credit: Apple)

Significant news arrives from Asahi Linux, the project that’s attempting, and actually succeeding, to get an operating system that’s not macOS running natively on Apple Silicon Macs. It has hit an important milestone: a graphics driver that brings work-in-progress OpenGL 2 support to the distro. Meanwhile, the M-chips’ journey toward mainstream Linux support took a step forward too.

The new driver, which hasn’t passed OpenGL conformance tests and is very much an alpha, can run desktop environments such as Gnome and Plasma with hardware acceleration. The developers are still working on the driver, bringing in more OpenGL 2 features and a planned Vulkan expansion in the works. “We estimated that we could ship working OpenGL 2 drivers much sooner than a working Vulkan 1.0 driver, and we wanted to get hardware accelerated desktops into your hands as soon as possible. For the most part, those desktops use OpenGL, so supporting OpenGL first made more sense to us than diving into the Vulkan deep end,” reads a blog post authored by Alyssa Rosenzweig and Asahi Lina.

The driver is an opt-in release, meaning you’ll have to install it on your Linux-Mac using the pacman package manager. It’s unclear at the moment whether the driver can run Crysis, but Quake 3 in 4K at 60fps appears to be within its capabilities, and it runs desktops at the same speed.

In other news, support for M-series chips in the mainline Linux kernel also saw an important improvement this week, with an Apple Silicon CPU frequency-scaling driver being merged into the Linux kernel’s 6.2 release. 

Hector Martin, Asahi Linux’s lead developer, explained on kernel.org: “This driver implements CPU frequency scaling for Apple Silicon SoCs, including M1, M1 Max/Pro/Ultra, and M2. Each CPU cluster has its own register set, and frequency management is fully automated by the hardware; the driver only has to write one register. There is boost frequency support, but the hardware will only allow their use if only a subset of cores in a cluster are in non-deep-idle. Since we don't support deep idle yet, these frequencies are not achievable, but the driver supports them. They will remain disabled in the device tree until deep idle is implemented, to avoid confusing users. This driver does not yet implement the memory controller performance state tuning that usually accompanies higher CPU p-states. This will be done in a future patch.”

Ian Evenden
Freelance News Writer

Ian Evenden is a UK-based news writer for Tom’s Hardware US. He’ll write about anything, but stories about Raspberry Pi and DIY robots seem to find their way to him.