Snow Leopard in UTM on an Apple Silicon Mac
In 2021, I posted about getting Snow Leopard installed in UTM. Unfortunately, at that time I didn’t have a Apple Silicon Mac to test on. In 2023, when I got my hands on one, I found that Snow Leopard doesn’t really like QEMU’s TCG emulation, resulting in a commpage no match for last
kernel panic on boot.
I thought it was my white whale, but 2025 was the year in which I would it it done.
So, I kicked off the year by doing some digging in the UTM issues and Discord, as well as various other QEMU / KVM-related Github projects until I found royalgraphx/LegacyOSXKVM project, which provides instructions to get legacy versions of Mac OS X up and running on QEMU via KVM. They had a particularly interesting guide on how to get Snow Leopard running on QEMU under Apple Silicon. Their findings are:
For now though, all I really need to explain is that for some reason the various KP’s that users experience when attempting to first boot or install Mac OS X Snow Leopard on M-Series Macs such as the Commpage or Installer KP are results of some weird TCG/32-Bit emulation errors. As well as OS X itself having trouble with the emulated TCG from ARM64 hosts. I’ve observed that x86_64 hosts using TCG (or commonly known as simply using emulation and not virtualizing) do not experience such errors. Leads me to believe that the installer uses various older parts for 32-Bit cryptography while installing, and the commpage error mainly being the CPU being weird, as in, how it appears to the guest machine.
I was able to get it up and running with no problems at all in Qemu upstream installed via Homebrew. But I still couldn’t get it to boot in UTM – I was getting general protection
kernel panics. I did some deep dives, looking at the parameters that was working in Qemu but failing with UTM.
I did a deep dive on the QEMU arguments being passed by LegacyOSXKVM and what was being passed by UTM. And, I was able to get Snow Leopard working on UTM.