MMS • Sergio De Simone
Article originally posted on InfoQ. Visit InfoQ
When Apple adopted their new ARM-based CPUs collectively dubbed Apple Silicon, it made all existing Linux distributions incompatible with its most recent hardware. This is changing thanks to the hard work of the Asahi Linux team, that recently introduced preliminary support for Apple M1 Ultra and M2 CPUs.
The new release follows closely the first alpha made available last March for M1, M1 Pro, and M1 Max machines. Being alpha, that release did not support all features you usually take for granted in a kernel, including GPU, Bluetooth, HDMI, Touch Bar, and others.
The new release, besides adding support for more recent CPUs, also removes some of those limitations. Most notably, the latest Asahi kernel includes a working Bluetooth driver:
Thankfully, while the PCIe transport is new, the HCI interface that runs on top is standard, so once the core initialization and data transfer parts of the driver started working, most Bluetooth features did too. The driver does not need to concern itself with any of those details, it just shuffles data to/from the device.
Unfortunately, the current Bluetooth implementation does not coexist perfectly with 2.4 GHz Wi-Fi, so you should either disable Wi-Fi or use a 5 GHz network.
The addition of the Bluetooth driver provided the playground to test what the Asahi team calls “seamless upgrade”, i.e., the possibility for users to upgrade their kernels without incurring in complex reconfiguration. In fact, adding Bluetooth support implied modifying a number of different components of the kernel, including the device tree, the installer, and so on. Thanks to the “seamless upgrade” approach, existing users will only need to upgrade their packages and reboot to have Bluetooth working.
As to support for the new M2 chip, according to the Asahi team, it took a relatively short time to get a minimal system running on the M2, with support for the keyboard and trackpad requiring some additional effort. Actually, the initial 12-hour reverse-engineering marathon that led to the minimal system running can be watched on YouTube. This result confirms the team’s expectations that extending support to new CPUs Apple is going to introduce will not require so much of an effort as the initial work required to support the M1 chip. However, M2 support is currently only at a very experimental stage. For example, the Asahi team does not guarantee that installing new releases for the M2 will not require reinstalling everything from scratch.
As a final note, the Asahi team also reported progress on the GPU support front, thanks to Asahi Lina‘s work. At the moment, a prototype driver is available that is able to run graphics applications and benchmarks, passing 94% of the dEQP-GLES2 test suite, but the stack is still too experimental to be included in the release. Asahi Lina’s reverse-engineering sessions can also be watched on YouTube.