El driver developer Open Source Linux for the Apple GPU AGX announced the implementation of support for Apple M2 chips and the successful release of the KDE and GNOME desktop environments on Apple MacBook Air with the M2 chip with full support for GPU acceleration.
As an example of OpenGL support in M2, Xonotic game launch was demonstrated, simultaneously with the glmark2 and eglgears tests, in which the battery life test, the MacBook Air lasted 8 hours of continuous playback from Xonotic at 60 FPS.
It is also observed that the DRM driver (Direct Rendering Manager) adapted for the M2 chips for the Linux kernel can now work with asahi OpenGL driver developed for Mesa without the need to make changes to the user space.
Recent changes include the implementation of USB3 support (previously Thunderbolt ports were used only in USB2 mode)
Apple Silicon M1 and later machines use Apple-designed (or Apple-customized?) hardware PHY called "Apple Type-C PHY" (ATCPHY) that supports USB3, DisplayPort, and TB3/USB4 modes. This piece of hardware is responsible for converting the data from the USB3/DP/TB protocol into signals on the cables. Since we are dealing with very high-speed signals (up to 20 Gbps per pair), the PHY must be very complex, and there are many analog knobs that need to be calibrated individually. With USB2, you can have universal settings that work for all devices, but that won't work for USB3 and other higher speed protocols!
The job of the PHY controller is to configure the physical hardware with settings specific to your particular chip, which are calibrated at the factory, and to manage the reconfiguration of all the PHY hardware as different modes are turned on and off.
In practice, this means a lot of "magic" registry taps, including some with variable data coming from factory-written eFuse.
✨ KDE runs on the Apple M2!!!! ✨
With full GPU acceleration! 🚀🚀
Running Xonotic, glmark2, and eglgears at the same time!!
My 🦀 Linux kernel driver now supports the M2!! And it works out of the box with Alyssa's Mesa driver, no userspace changes needed~!! pic.twitter.com/JUmtvCHAC8
— Asahi Linya / 朝日りにゃ〜 // @email@example.com (@LinaAsahi) November 25st
Besides it It also highlights the ongoing work on compatibility with MacBook's built-in speakers. and a headphone jack, adding support for keyboard backlight control adding native installability for installer devices with an M2 chip (without switching to expert mode).
On the other hand, another feature that draws a lot of attention is the "power management"that on Linux, the S0ix equivalent is called s2idle (suspend to idle), and it does exactly what it says it performs system suspend moves, but then puts the hardware in an idle state.
Some people have reported high battery drain on Asahi Linux machines while idle, and this is almost always due to poorly behaved userspace causing a large number of wakes or keeping CPUs busy. s2idle solves this problem!
s2idle doesn't require any special drivers or support, but it does require suspend/resume support in the drivers to work (ie, at least not fail).
For us, this was locked into the WiFi chipset, which required a new mechanism to enter what it calls S3 sleep (confusing name; maps to s2idle here) on Apple machines that didn't support the existing driver and would cause the suspension process to error.
Meanwhile Asahi project developers, which aims to port Linux to run on Mac computers equipped with ARM chips developed by Apple, have prepared a November update of the distribution (590 MB and 3,4 GB) and have published a progress report on the project.
To complicate Linux driver development, Apple's M1/M2 chips use their own Apple-designed GPU, running proprietary firmware and using fairly complex shared data structures. There is no technical documentation for the GPU and independent driver development uses reverse engineering of macOS drivers.
Asahi Linux is based on the foundation of the Arch Linux package, it includes a traditional software package and comes with the KDE Plasma desktop. The distribution is built using the regular Arch Linux repositories, and all specific changes such as the kernel, installer, bootloader, helper scripts, and environment settings are moved to a separate repository.
Finally, if you are interested in being able to know more about it, you can consult the details in the following link