Experiments With Arm64 VMs on AppleSilicon Mac
With the release of a new ARM based processer for Apple Mac computers, an interesting transition is happening. People who depend on using virtual machines for tasks will need to adapt to new requirements for running them. Aside from VMware Fusion, Parallels and qemu a few other options have popped up. In this post, I’ll share some details around SimpleVM which I have been looking at for a few weeks. SimpleVM is a minimum viable hypervisor.framework front end. Others have started posting changes to this tool to enable running arm64 native virtual machines in this post. https://forums.macrumors.com/threads/ubuntu-linux-virtualized-on-m1-success.2270365/
The SimpleVM project lives here https://github.com/KhaosT/SimpleVM Note all the forks of people experimenting with it. To get this to build in Xcode the SwiftTerm project also needs to be added as a depandancy https://github.com/migueldeicaza/SwiftTerm . I did that by cloning the repo for SwiftTerm and dragging the folder onto the SimpleVM project in Xcode. I ended up modifying this fork as it has a couple of changes I needed. https://github.com/brucehoult/SimpleVM .
Line 79 of VirtualMachineViewModel.swift I updated to the following
1bootloader.commandLine = "console=hvc0 root=/dev/vda1"
Here is a binary that I used for testing with the Ubuntu cloud image SimpleVM.zip
The gist below is my notes for creating the needed bits to get a Ubuntu 20.04 arm64 vm to work with the modified version of SimpleVM.This is all very experimental and likely needs many improvements. This code needs to be run in a Ubuntu 20.04 x86 vm or adapted to the system you have.
Once the needed bits have been downloaded and extracted. Launch SimpleVM and drag N drop the files onto it’s main window for configuration. Shown in the main screenshot in this post for reference. Click the start button and hopefully things boot up. Keep in mind this is all very experimental an not likely a solution I plan on using longer term. Very cool proof of concept that appears to be the first workable solution for native arm64 VMs on AppleSilicon + Big Sur Macs it is!