An ideal Linux workstation on an Apple M1 processor (ARM64)

Short description

Asahi Linux is a Linux distribution that works natively in Macs on Apple Silicon, thanks to clever hacks and reverse engineering from the open-source community. It is completely legal, as Apple officially allows non-macOS operating systems to run on its Apple Silicon platform. Asahi Linux’s performance on the M1 processor is impressive, with everything running incredibly fast. Asahi Linux allows for a practically perfect ARM64 Linux workstation on Apple’s most powerful M1 processors. Everything works flawlessly, with no software packages not working on the system. Asahi Linux provides the fastest Linux desktop experience, and in some cases, it happens too quickly.

An ideal Linux workstation on an Apple M1 processor (ARM64)

My acquaintance with Asahi Linux began in March last year, when the alpha version of Asahi was released. I immediately installed it on my Mac Mini with an 8-core Apple M1 (ARM64). Asahi is a Linux distribution that works natively in Macs on Apple Silicon thanks to clever hacks and reverse engineering from the Open Source community. What’s more, Asahi’s launch is completely legal, as Apple officially allows non-macOS operating systems to run on its Apple Silicon platform.

The word Asahi translates as “morning sun”. And this is not only a well-known brand of Japanese beer, but also a Linux distribution, which is named to emphasize the primacy of the development team in mastering the Mac platform.

When I installed the Asahi, only basic hardware drivers were available for it (xNVMe, keyboard, trackpad, Wi-Fi, Ethernet, USB, etc.). However, I installed the distribution and was surprised at how fast the system was, describing my experience on the blog. By the end of the year, almost all necessary drivers were released (Bluetooth, audio, graphics were added). As a result, all the packages I needed were adapted for the 16K memory pages in Apple Silicon.

Asahi’s performance on the M1 is nothing short of impressive. Compiling Chromium 102 on Fedora Linux on Core i9 took just over an hour – and just 12 minutes on Asahi.

As for graphic tasks, Asahi excels here as well. I have never seen KDE, GNOME, LibreOffice, Gimp, Inkscape, Firefox run so fast. Games (SuperTuxKart) just fly, VLC video and YouTube also work perfectly.

That’s when I got the idea to run Asahi Linux on Apple’s fastest Apple Silicon Mac. This would be a perfect ARM64 Linux workstation, I thought and decided that I would definitely do it.

A new level with Asahi Linux

In January of this year, I installed Asahi Linux on Apple’s most powerful ARM64 system – a Mac Studio with a 20-core M1 Ultra processor and 128 GB of RAM. It pairs with Dell’s gorgeous 34-inch widescreen curved monitor via HDMI.

At the same time, I decided to switch from the i3 window manager (which should work on the old X Window system) to the sway compositor for the new Wayland. It turns out that sway works better and uses a more efficient configuration.

Below is a high resolution screenshot of my sway desktop on Mac Studio (right click available in original resolution). You can find my custom sway dotfiles configuration in the GitHub repository.


Is there something that doesn’t work in Asahi?

This question can be answered with the words of Hamlet in the third act of the tragedy of the same name, line 87:



Everything you need works…and works great. The hardware (Bluetooth, audio, HDMI, USB, 10G Ethernet, WiFi, and graphics) interacts flawlessly with the drivers created by the Asahi development team last year, and there isn’t a software package I need that doesn’t work on my system.

Most of the software I installed came from the Arch repository, as Asahi Linux is based on the Arch Linux package base and is built using the stock Arch Linux repositories.

But some (such as Visual Studio Code) are installed as isolated modules using the Flatpak utility, which provides a dedicated environment for running applications isolated from the main host system, allowing them to be used regardless of changes to the system. For more complex software complexes, I use ready-made images of Linux containers, as in the case of NextCloud. You’ll also notice from the htop output in the screenshot above that I’m using a minimalistic Kubernetes build to test the k3s microservices I’m developing.

Since I use containers for most work projects, there is no need to run other Linux VMs. However, you have to work with web applications that require FreeBSD. I installed a QEMU virtual machine specifically for it, which uses eight cores and 64 GB of RAM. Below is a picture of the console vm running in terminal on the sway desktop. You can find my QEMU script in the GitHub repository.

FreeBSD virtual machine

Fastest Linux desktop in my life

Thanks to Asahi Linux, I have the fastest Linux desktop of my life. Everything – and I mean absolutely everything – is incredibly fast. The software starts up instantly, and there seems to be no program screensavers at all.

In some cases it happens too quickly. When I installed K3s, all containers in the kube-system namespace dedicated to objects created by Kubernetes kept going into the dreaded CrashLoopBackOff state. After a little investigation, I found that Mac Studio was too fast to sync Kubernetes resources. To fix the situation, I had to add a limit to each module.

One of the main reasons I chose Linux/ARM64 is that the startup I’m currently working with runs a heavy and highly loaded microservices application running on an AWS c6g.12xlarge Graviton instance with 48 ARM64 cores. We built into it our own microservices for load modeling and performance monitoring.

I ran the application and download simulation on my Mac Studio running Asahi to see how it all works in our staging environment on AWS. Well, the Mac Studio desktop beat the 48-core Graviton instance head on. Latency on the same load was about 20% lower on average, and calculations were 36% faster.

As a result, it turned out that I have a practically perfect ARM64 Linux workstation in my hands. And I adore her.

Related posts