45 lines
9.5 KiB
Markdown
45 lines
9.5 KiB
Markdown
---
|
||
layout: post
|
||
author: hexaitos
|
||
title: Asahi Linux on my base model M1 MacBook Air
|
||
excerpt: In this blog post I will be taking a quick look at Asahi Linux and my opinions on it so far. I have installed it on my base-model M1 MacBook Air and am planning of perhaps turning it into a very low-powered yet still powerful server.
|
||
---
|
||
{% include img/main.html src="/assets/images/blog_posts/asahi_mba_m1/20241118-WE2A1144.jpg" caption="A photo of my MacBook Air running Asahi Linux with KDE Plasma 6" alt="An opened MacBook Air M1 standing on a table. It is showing the desktop of KDE Plasma 6 with the floating task bar at the bottom. The desktop background is a bird of prey." %}
|
||
|
||
A couple of years ago – still during my apprenticeship and also during the pandemic – I bought a base model M1 MacBook Air with some bonus money that I got for finishing an important (to my boss, at any rate) project at work and it’s been my main laptop ever since and one that I’ve been using basically daily ever since. However, the fact that I only got a base model has been a bit problematic and, thefore, I decided to upgrade to the new M4 MacBook Pro this year. This, then, leaves me with my still more than capable MacBook Air and I’ve been thinking about what to do with it. Then I remembered the fact that I’ve always been wanting to try out Asahi Linux; and that coupled with the *very* low power consumption of these M-series chips made me think that it would probably make for a really good low-powered server that still has enough *oomph* for more heavy workloads (definitely more than my *actual* server that’s running an Intel N100). And so that’s exactly what I did!
|
||
|
||
## Installation
|
||
The installation of Asahi is pretty straightforward in general, but having only a base model Mac (with a measly 256 GB SSD) does pose a bit of a problem: Asahi cannot be installed as the sole operating system; instead; it can only be installed *alongside* macOS. This, then, means that even after completely erasing my previous Sonoma install and then *only* running the Asahi Linux installer afterwards, I only have about 150 GB of usable disk space on my Asahi partition. Now that’s not that bad or anything, but it’s definitely not a lot of disk space in today’s world.
|
||
|
||
Speaking of the installation, it’s pretty much as simple as running `curl https://alx.sh | sh` in a terminal window and following the on-screen prompts (insert disclaimer about running running shell scripts without checking their contents first here). If you’re even remotely familiar with the command line (and are able to read), then the installation shouldn’t pose any significant problems. Still, I would not recommend installing this on your main machine that you use for other things as well as I’m sure it can quite easily render your macOS install useless if something goes wrong.
|
||
|
||
During the installation process, you’ll be given the opportunity to set a new size for the macOS partition and a size for the to-be-created Asahi Linux partition. Additionally, you can choose between either Gnome or KDE (if I remember correctly) as your desktop environment. Then, after some rebooting and changing of Mac security features, you’ll be greeted by an installer that you’re going to be very familar with if you’ve ever installed a Linux distribution. There you’ll choose a timezone and a username and password. Afterwards you can reboot and you should be greeted by a login window.
|
||
|
||
As a side note: Asahi used to be based on Arch Linux but they appear to have moved over to Fedora and the Fedora-based Asahi Linux is, as far as I can tell, the only <q>official</q>. There are some [community-maintained flavours](https://github.com/AsahiLinux/docs/wiki/SW:Alternative-Distros) but I haven’t tried out any of those yet; I am also guessing their installation process will differ quite significantly from that of the official Fedora-based version.
|
||
|
||
## The desktop experience
|
||
I was honestly quite surprised at how *usable* it was in general, the only thing I still would very much like to see implemented is the ability to connect an external monitor through one of the USB-C ports of the MBA — that has (as of the publishing of this post) not yet been implemented. Other than that, however, everything worked pretty much as you’d expect: you can change the brightness of the keyboard and the screen; the trackpad works (and even has force feedback); the speakers work and sound as you would expect them to sound; the keys on the keyboard all work (including things like the media keys for playing/pausing videos or music); closing the lid makes the laptop reliably go to sleep and opening it wakes it up quite quickly … you get the idea. Even the battery life is as fantastic (KDE estimating 9-12 hours) despite this MacBook being 4-ish years old now. WiFi also works perfectly and at the the expected speed.
|
||
|
||
{% include img/small.html src="/assets/images/blog_posts/asahi_mba_m1/screenshot-fastfetch.png" caption="Fastfetch running on the MacBook Air" alt="A screenshot showing a full-screened terminal window and the output of the program fastfetch. The output shows some information about the machine, such as the processor and its speed, OS etc." %}
|
||
|
||
There are some strange behaviours here and there though. For example, whilst the trackpad does work, the palm rejection is, seemingly, non-existent, especially if you’re used to how well it works on macOS. Oh and speaking of the trackpad, it feels strangely laggy, almost as though it were connected through a terrible bluetooth connection (I’m pretty sensitive to input delay in general though, so you might not notice this at all). Also, you’re going to have to use regular Windows-style shortcuts, i. e. `⌃C` instead of `⌘C` for copying things, as an example.
|
||
|
||
Additionally, you might not have access to all the packages as, obviously, this isn’t an `x86_64`-based system but rather `aarch64`. I wanted to install Ruby on my system and I generally use `rbenv` to manage my Rubies. However, I first had a bit of trouble getting `rbenv` itself working and once I did, I had even *more* trouble getting it to actually compile Ruby 3.3.6 for me. At first, there were some problems with `openssl` that I managed to somehow fix by running `sudo dnf groupinstall "Development Tools"` but then it complained about `libffi` apparently missing (even though it wasn’t as far as I could tell) so I just ended up using `rvm` instead – that could compile Ruby 3.6.6 without any problems.
|
||
|
||
Most of the Flatpaks that I’ve tried worked without any problems except for the Flatpak for Telegram for some reason, but that might’ve just been my doing something wrong. LibreWolf, the browser I generally use on Linux, works fine and runs as expected, though also through a Flatpak. Tokodon, KDE’s own Mastodon / Fediverse client, also works quite well. The GPU, apparently, *also* works but I haven’t really tried that out yet. Watching YouTube videos, even at 4K, was not a problem however and I couldn’t detect any dropped frames.
|
||
|
||
A colleague of mine – who is also quite interested in both ARM and RISC-V – has told me about Box64 which allows you to run normal `x86_64`-based programs on an ARM-based processor. I haven’t yet tried this out myself but I definitely want to try it out and see if I can get some non-native programs running through that.
|
||
|
||
## And as a server?
|
||
|
||
{% include img/small.html src="/assets/images/blog_posts/asahi_mba_m1/screenshot-sensors.png" caption="The output of lm-sensors" alt="A screenshot showing a terminal window and the output of the sensors command. It is showing temperatures, voltages and a wattage." %}
|
||
|
||
I still haven’t done too much with regards to trying it out as a server, but I still feel like it should work quite well as long as all the software also works. I *really* wanted to get something like Proxmox or maybe even just YunoHost working, but I haven’t really found a way to do that yet. One thing I already did was change the charging limit from `100%` down to `80%`. I had to do this through the console by running `echo 80 |sudo tee /sys/class/power_supply/macsmc-battery/charge_control_end_threshold` in the terminal as changing the charging limit through KDE’s GUI settings did not seem to work.
|
||
|
||
I also installed `lm-sensors`. I did that mostly to see the temperatures at which the computer was running, but I was very surprised to see that it also provided me with a nice way of seeing how much power it was using at a given time. This showed me that the power usage even with the screen turned on was rather low! I, therefore, enabled ssh and ssh’d into the machine to see what its power usage would be when the screen was completely turned off; and I was very surprised to see that the idle power consumption appears to be around 1-2 W with the screen turned off. Now that’s *really* low value and something that you would *probably* have a hard time noticing on your monthly power bill.
|
||
|
||
If I were to actually start using this machine as a server, I would probably install a more minimal version of Asahi (probably without any DE whatsoever) and I would also need to get some sort of USB-C to ethernet adapater and *hope* that it works; though depending on what exactly I’ll end up using the server for, a decent WiFi connection might not be all that problematic either.
|
||
|
||
## Conclusion
|
||
I was pleasantly surprised to see how well it works just out of the box and will definitely be keeping Asahi on my MBA. I’ll try out some more stuff, especially in regards to running it as a server or I might just keep it around as a nice Linux machine in general.
|