It’s been a long while since we updated the blog! Truth be told, we wanted to write a couple more progress reports, but there was always “one more thing”… So, instead, we decided to take the plunge and publish the first public alpha release of the Asahi Linux reference distribution!
We’re really excited to finally take this step and start bringing Linux on Apple Silicon to everyone. This is only the beginning, and things will move even more quickly going forward!
Keep in mind that this is still a very early, alpha release. It is intended for developers and power users; if you decide to install it, we hope you will be able to help us out by filing detailed bug reports and helping debug issues. That said, we welcome everyone to give it a try – just expect things to be a bit rough.
Behind this scenes, this release brings with it several future compatibility features. What this means is that users who install it will be able to keep up with all future improvements by simply upgrading their packages – no reinstalling necessary.
Ready to give it a shot? Make sure to update your macOS to version 12.3 or later, then just pull up a Terminal in macOS and paste in this command:
Pay close attention to the messages the installer prints, especially at the end!
System requirements
- M1, M1 Pro, or M1 Max machine (Mac Studio excluded)
- macOS 12.3 or later, logged in as an admin user
- At least 53GB of free disk space (Desktop install)
- You need 15GB for Asahi Linux Desktop, but the installer reserves an additional 38GB of disk space in macOS to avoid breaking macOS updates. If you want to disable this check, enable expert mode when prompted.
- A working internet connection
- The installer will download 700MB ~ 4GB of data, depending on the OS you select.
If you use Time Machine, you may find that you do not have enough free space. This is caused by local Time Machine snapshots taking up the “free” space in your volume. You can learn how to delete these to truly free up space here.
Installation
The installer is designed to be as self-explanatory as possible. You will see a series of prompts that guide you through resizing your macOS partition (if necessary) and installing your new OS. We expect users to install Linux alongside macOS at this point. The installer will not delete or affect your macOS installation, other than performing a live resize.
Once the first stage of the installation is done, you will have to reboot into 1TR mode (One True recoveryOS) in order to finish the install. Read the instructions that the installer prints carefully! Simply rebooting into the new OS won’t work until this is done. You need to fully shut down your machine, then boot by holding down the power button until you see “Entering startup options”, choose your new OS in the boot selector menu, and follow the prompts.
The installer provides these OS options:
Asahi Linux Desktop
A customized remix of Arch Linux ARM that comes with a full Plasma desktop and all the basic packages to get you started with a desktop environment. It includes a graphical first-boot set-up wizard, so you won’t have to dig around to change your settings or create your first user. No root password by default; use sudo to become root.
Asahi Linux Minimal (Arch Linux ARM)
A vanilla Arch Linux ARM environment, with only the minimal support packages to integrate with the boot process and hardware on Apple Silicon machines. Arch users will feel right at home!
Log in as root/root or alarm/alarm. Don’t forget to change both passwords! SSH is disabled by default for security reasons, so you’ll have to enable it manually.
UEFI environment only (m1n1 + U-Boot + ESP)
No distribution, just a minimal UEFI boot environment. With this, you can boot an OS installer from a USB drive and install whatever you want (as long as it supports these machines, of course)!
What works
All M1, M1 Pro, and M1 Max devices are supported except for the Mac Studio.
- Wi-Fi
- USB2 (Thunderbolt ports)
- USB3 (Mac Mini Type A ports)
- Screen (no GPU)
- NVMe
- Lid switch
- Power button
- Built-in display (framebuffer only)
- Built-in keyboard/touchpad
- Display backlight on/off
- Battery information / charge control
- RTC
- Ethernet (desktops)
- SD card reader (M1 Pro/Max)
- CPU frequency switching
M1 machines only (no Pro/Max):
- Headphones jack (might be flaky)
Mac Mini only:
- HDMI output
Not yet, but coming soon:
- USB3
- Speakers
- Display controller (backlight brightness control, V-Sync, proper DPMS)
What doesn’t
Everything else, but notably:
- DisplayPort
- Thunderbolt
- HDMI on the MacBooks
- Bluetooth
- GPU acceleration
- Video codec acceleration
- Neural Engine
- CPU deep idle
- Sleep mode
- Camera
- Touch Bar
Note: on the 13″ MacBook Pro, you can use Fn + the number row keys (1-9, 0, and the next two) as F1..F12 in lieu of the Touch Bar.
Known bugs
- If Wi-Fi doesn’t work, try toggling it off and on in the network management menu
- If the headphones jack doesn’t work or only one channel works, try rebooting. There’s a flakiness issue.
Known broken applications
The Asahi Linux kernel is compiled to use 16K pages. This both performs better, and is required with our kernel branch right now in order to work properly with the M1’s IOMMUs. Unfortunately, some Linux software has problems running with 16K pages. Most notably:
- Chromium (needs volunteer to fix)
- Emacs (fix committed, not released)
- Anything using jemalloc (e.g. Rust in Arch Linux ARM)
- Anything using libunwind (fix committed, not released)
Hopefully this release will help motivate upstream projects to fix these issues and properly support all ARM64 page sizes (64K, 16K, and 4K). 16K provides a significant performance improvement of up to 20% or so under some workloads, so it’s worth it.
There is a category of software that will likely never support 16K page sizes: certain emulators and compatibility layers, including FEX. Android is also affected, in case someone wants to try running it natively some day. For users of these tools, we will provide 4K page size kernels in the future, once the kernel changes that make this possible are ready for upstreaming.
Further information
Visit our docs wiki for more information! We could use more people working on documentation, so feel free to contribute too! Note that, since things have been moving very quickly, some of the docs may be out of date.
Recommended reading: