Mac OS VMs under Fedora Asahi Linux
I run a cluster of Apple Mac M1/M2 Minis and Studios for development use. They all run Fedora Asahi Linux and they work really well. I mainly use them as headless servers for software dev work.
I've recently been working on some iOS projects, which naturally need Mac OS/XCode to do the builds. CI runners on Github and hosted Mac OS machines in general are very expensive - a used Mac Mini is now dirt cheap. Mac OS, however, is not a great headless server OS and running CI jobs should ideally be done with ephemeral storage to keep things clean and predictable.
I therefore really wanted a way of running my Mac OS CI jobs under Linux on my existing M-series Apple hardware inside VMs.
I guided a combination AI agents into investigating the shortcomings of steelbrain's alpha/experimental work. Things like partial/slow GPU support, VM boot failures (required a virtual clock), memory ballooning, etc. and ultimately reverse engineered, improved efficiency of and production-readied steelbrain's work. This involved a lot of testing, a lot of benchmarking, a few kernel panics.
Mac OS VMs now run efficiently and with GPU acceleration under Fedora Asahi Linux. You can find the work here: aquarat/apple-macos-arm64-vm-guest
I've been using them as runners for my Forgejo CI system, but this work should be easily extendable to Github Actions and beyond.
Initial image generation still needs a Mac OS machine. There are graphs 😆
1 point
Mentions
Mac OS VMs under Fedora Asahi Linux I run a cluster of Apple Mac M1/M2 Minis and Studios for development use. They all run Fedora Asahi Linux and they work really well. I mainly use them as headless servers for software dev work. I've recently been working on some iOS projects, which naturally need Mac OS/XCode to do the builds. CI runners on Github and hosted Mac OS machines in general are very expensive - a used Mac Mini is now dirt cheap. Mac OS, however, is not a great headless server OS and running CI jobs should ideally be done with ephemeral storage to keep things clean and predictable. I therefore really wanted a way of running my Mac OS CI jobs under Linux on my existing M-series Apple hardware inside VMs. I guided a combination AI agents into investigating the shortcomings of steelbrain's alpha/experimental work. Things like partial/slow GPU support, VM boot failures (required a virtual clock), memory ballooning, etc. and ultimately reverse engineered, improved efficiency of and production-readied steelbrain's work. This involved a lot of testing, a lot of benchmarking, a few kernel panics. Mac OS VMs now run efficiently and with GPU acceleration under Fedora Asahi Linux. You can find the work here: aquarat/apple-macos-arm64-vm-guest I've been using them as runners for my Forgejo CI system, but this work should be easily extendable to Github Actions and beyond. Initial image generation still needs a Mac OS machine. There are graphs 😆