Dr. Brian Robert Callahan

academic, developer, with an eye towards a brighter techno-social life



[prev]
[next]

2025-02-22
State of virtualizing the BSDs on Apple Silicon

I am back to daily driving macOS, for the first time since the PowerPC days. I went from a G4 to an M4. But one thing I still want to keep up on is OpenBSD development and the happenings of the other BSDs. Having a virtualized OpenBSD/aarch64 machine is great because it gives me another platform to test ports and other things on. I do also have low-powered mini PCs running FreeBSD and OpenBSD, but those are both amd64 machines.

When we ported the GNAT Ada compiler to macOS/aarch64, we used Apple's virtualization framework in the form of VirtualBuddy. The virtualization framework says that you can run macOS or Linux on it. I have indeed gotten Debian 12.9 to run on VirtualBuddy but I find it is not as good as running in VMWare Fusion.

This got me thinking: can we run any of the BSDs on the virtualization framework?

Running your favorite *BSD on VMWare Fusion is already great (and free!)

I should start by saying I already know that both FreeBSD and OpenBSD work perfectly well using VMWare Fusion; you can simply install the latest aarch64 versions on it and all will be good. It even has a profile for FreeBSD 13.x and 14.x so if you give VMWare Fusion a FreeBSD install ISO it will automatically know you are installing FreeBSD and give you sane hardware defaults.

With VMWare Fusion being free for Apple Silicon, if all you want is to run your *BSD of choice and don't care how then you're all good. I am guessing this is because VMWare Fusion emulates a lot more hardware than the Apple virtualization framework provides. Indeed, this probably must be true because I also run the ARM64 version of Windows 11 on VMWare Fusion and Apple seems to imply that cannot be done with their stock virtualization framework.

So the first half of our answer to what is the state of virtualizing the BSDs on Apple Silicon is: great! If you use VMWare Fusion, everything is ready to go and you can run aarch64 versions of your favorite *BSD for free without any issues and get all the goodies like graphical desktop environments. In fact, I found running OpenBSD/aarch64 on my Mac so good that I gave away all my aarch64 hardware in favor of VMWare Fusion. When running in full screen, you would never know that I wasn't running OpenBSD natively on the hardware.

But for completeness, let's try VirtualBuddy too.

Running FreeBSD on VirtualBuddy

I downloaded the generic version of the aarch64 install ISO for FreeBSD -current. I pretended it was Linux, as VirtualBuddy allows you to select a custom ISO when choosing Linux as the operating system you want to install.

However, we don't get very far before encountering a crash:

FreeBSD/aarch64 loading screen crash

The only remedy was to power off the virtual machine. Bummer.

Running OpenBSD on VirtualBuddy

I downloaded the latest ISO snapshot of OpenBSD/aarch64 -current. Same as FreeBSD, I chose Linux when VirtualBuddy asked me which operating system I wanted to install and chose to select a custom ISO.

OpenBSD spun up without issue. The networking appeared not to work but other than that I was able to install OpenBSD without issue.

Rebooting the machine, OpenBSD came up without issue and everything worked just fine, except for networking and Xorg. Unfortunately, the networking still did not work. I see an error in the dmesg output:

OpenBSD/aarch64 dmesg report on Apple Silicon virtualization framework

The key lines here are:

virtio0 at pci0 dev1 function 0 "Qumranet Virtio 1.x Network" rev 0x01
vio at virtio0virtio0: Feature negotiation failed
virtio0: virtio configuration failed
Other than this, everything else just works and OpenBSD works as expected. I did also notice that running startx did not work either, but that for me is less important than getting networking fixed. With networking fixed, OpenBSD would be an ideal choice of *BSD to run on the Apple virtualization framework.

Running NetBSD on VirtualBuddy

I downloaded the latest Generic 64-bit ISO of NetBSD HEAD from their NetBSD Arm Bootable Images website.

Similar to FreeBSD, NetBSD crashed right away:

NetBSD/evbarm loading screen crash

The only remedy was to power off the virtual machine. Bummer.

Conclusion

The clear winner for running a *BSD on the stock Apple virtualization framework is OpenBSD. Neither FreeBSD nor NetBSD could get past their initial boot screen. So the second half of the answer to the question of what the state of virtualizing the BSDs on Apple Silicon is that OpenBSD is the only choice if you are using the stock Apple virtualization framework but it still needs its networking and Xorg fixed.

To wrap up: if you want to run a *BSD on your Apple Silicon Mac, get VMWare Fusion. It's free and whichever *BSD is your favorite, you can expect it to run the aarch64 version of your favorite *BSD perfectly well with all the bells and whistles.

But stay tuned for running OpenBSD on the stock Apple virtualization framework: it's so very close and is probably only a small bugfix or two away from being a great choice there as well.

Top

RSS