Asahi Fedora Remix as daily work driver

We get workplace computers refreshed in 3 year cycles. My old system was a Thinkpad T590 with 32GB memory, and 8th gen Intel CPU. When it was up for refresh, I did choose a Macbook, and got a “Apple Macbook M2”, 2023 model, with 16GB RAM.

I work as Linux engineer, doing support/development/communication. My goal is to use Linux directly on the AppleSilicon hardware. Now after some months, it’s time to recap what I settled with, and how well I can do my work with the system.

TL’DNR

All I need for my work is available, the Macbook with Asahi is now my daily work driver. In parallel, I could keep my previous system, a Thinkpad T590, so I keep now the Macbook at work and use the Thinkpad when working from home. Most data is anyway shared in company git repos, and the mail folders.

Disk encryption

Most important, this is 2024 and a laptop storage needs to be encrypted. The Asahi installer does not yet support encryption natively.

The Asahi Fedora remix install procedure guides to shrink down the MacOS area on the storage, and install Linux in a new area. While the whole setup is a bit complicated, Apple seems to explicitly allow non-MacOS systems on the hardware, while still allowing features like a chain of cryptographically verifying the booted MacOSX kernel, so what SecureBoot does on x86.
The MacOS installation is also the way to receive firmware updates: MacOS gets patched, and if required Linux can get updated firmware which needs to be loaded at runtime from the MacOS installation. Of course, while we have now fwupd on x86 for easy firmware updates, that can not be used on AppleSilicon.

I followed the normal procedure to install Asahi Fedora remix, then creates a USB-live-media with Asahi, one boots from that and encrypts the disk. Details are on the wiki.

The Asahi Fedora remix distro consists mostly of Fedora 39 aarch64 packages, plus some extra packages from Asahi, like the kernel.

Which of the Mac hardware features are supported?

This is a recap of the features I need for my work, and how well they are supported. The Asahi feature page lists the detailed support states, I have a feed in my rss-feed reader for direct notification on any changes.

Important features, along with availability status:

  • Builtin webcam works without issues
  • Sound: Bluetooth, also buildin speakers, and 3.5mm headphone jack all work. I mostly use my bluetooth connected Sony headset.
  • Input engine Fcitx5 works, I use it for Japanese input
  • The Macbook keyboard and touchpad are usable, but I’m not happy with the keyboard hardware wise. At home I use the System 76 launch keyboard, but it’s to pricey to just buy a second one for use at work.
  • external monitor: HDMI output was implemented December 2023, for now without audio over HDMI. Before that, I investigated some workarounds via ethernet which use ffmpeg for encoding/decoding and then shows the
    picture on a monitor connected to a different Linux system, i.e. a Thinkpad or Raspi. External output via USB-C does not yet work.
  • Controlling brightness of the buildin screen works via utility ’light’ (it’s in a package with the same name).
  • Builtin microphone does not yet work, but I use the Sony bluetooth headset anyway
  • For network, wireless works. I also use GBit ethernet via a docking station which is connected to the Macbook via USB-C

How about software?

The Asahi project traditionally used/recommended KDE Plasma, but basically all Wayland based windowmanagers should be fine. Xorg might work, but the Asahi team focuses on Wayland.
I’m using the Sway window manager, works nicely on the Mac. Details are on the wiki.

Compiling things like Performance Co-Pilot is blazingly fast, thanks to the 10 cores of the system - real cores, no hyperthreading.

For video chat: Google meet works nicely. Traditionally I used Firefox mostly, and in some cases like for Google meet I used Goodle chrome. Google does not provide a build of chrome for Linux on aarch64, I’m using chromium instead. Microsoft Teams also works, and Slack - using Firefox for that. Slack huddles do not simply work with Firefox, I did not research that deeper, not sure if they offer a Slack package for aarch64 Linux.

Skype is almost unusable for me, I tried the implementation via https://web.skype.com . It complains that it’s not running on browser “Microsoft edge”. When started on Firefox, it Skype has much lag - sure if due to bad codec choice, or wlan throughput issues - but I did not notice wlan issues otherwise.

In Firefox, on proper keyboards, I use crtl+pageup and ctrl+pagedown to switch through browser tabs. These keys do not exist - on the Macbook. Replacement is <ctrl>+<tab> and <ctrl>+<tab>+<shift>, that’s a bit inconvenient.

Further software, which runs just smoothly:

  • Libreoffice
  • Inkscape
  • Krita, using this for i.e. cropping and simple modification tasks. In the past, Gimp did lockup on my Wayland based systems.
  • Latex/Xelatex
  • Imagemagick, evince for pdf viewing, Python scripts for interaction with Jira
  • cups for printing, PCP/Grafana for performance monitoring, including pmda-denki

First things after installation

Most hints for “first things after installation” are identical to Sway installations on other hardware like Thinkpads, they are on the wiki.

On the Mac, I have setup keyboard hotkeys for:

  • turning the buildin screen on/off
  • for tuning screen brightness up/down
  • for locking the screen, I use ‘xlock -m blank’ in a terminal, haven’t yet configured that as hotkey

Then you should activate TRIM:

vi /etc/crypttab
# add 'discard', like for example:
cat /etc/crypttab
fedora-root UUID=8faa8bde-522d-4c59-9827-958afa662374 none discard

# then rebuild initrd (maybe not required)
dracut -f

# then reboot
reboot

With that, you can execute ‘fstrim /’.

Virtualization

  • KVM virtualization for aarch64 Linux: I use this to replicate customer issues. Older kernels, i.e. RHEL7 or RHEL8, can not be virtualized.
  • Qemu emulation: I use this when virtualization is not possible. x86 can be emulated, performance is ok! RHEL installation via kickstart into a virtualized guest takes 3 minutes, emulated x86 guest takes 21 minutes. For all my purposes it’s fast enough - just setup of IdM (FreeIPA) would be noticably slow.

One issue I noticed: I got a Macbook M2 with 16GB of RAM. My window manager ‘Sway’ has a low memory footprint, but Firefox uses quite some memory. When then running a KVM guest with 4GB of RAM, I’m running into 14 or 15GB used memory. Also running Firefox and chromium at the same time uses quite some memory. For running many KVM guests in parallel, I have now to go back to the T590 with 32GB of RAM, or to spare systems on the intranet via Beaker reservation.

memory pressure

The wiki has more details on performance comparison, and how I install Fedora and RHEL as KVM (virtualization) or Qemu (emulation) guests.

Linux@apple silicon, my conclusion for now

All the important pieces at least for my work are together for use at work: encrypted disk, openvpn access, wlan/ethernet, access to mail, video conferences.

The Macbook hardware is quite nice, the screen has nice colours, compared to my Thinkpad T590. I’m not a fan of the keyboard and the touchpad, might get an external keyboard in the future.

Performance Co-Pilot compiles in under 6min. Runtime on battery is very nice, and the Macbook/Asahi does exceptionally well regarding power efficiency in the comparison I’m doing right now, article with the results is under review for getting published.

Macbook Asahi Fedora booted


Last modified on 2024-03-24