Emulation and Virtualization on a Macbook Air M1

rcrook9190

New Tinkerer
Nov 5, 2021
22
12
3
Just a bit of messing around for #MARCHITOSH.

So I got a Macbook Air M1 a couple of weeks back and have been tuning it up for the daily driver.

Got the minicom and Termius sorted with my ftdi consoled homebrew Z(1)80s. Got my MiniPro working with brew ( and Win11 ARM ).

I then started on the Emulators.

b2 - BBC Micro Emulator - latest version works really well.
Basilisk II and basilisk II GIU betas - Older Macs - work a treat
FS-UAE and FS-UAE Launcher - Amiga Emulator - Both work well.
Fuse - ZX Spectrum Emulator - Works well.
KEGS - Apple //gs Emulator - Works a treat.

Virtualization is a different matter. Only two working available for Apple Silicon.

qemu which I did not bother with as I am really lazy and it seemed like a pain to set up.

Parallels which I decided to fork out real money for as I use Virtualization extensively anyway. And I like it.

Installed Debian aarch64 in a virtual machine and its runs really well and very snappy. If you use their canned image, it have some really nice integration features that allow easy sharing of data between macOS and the Linux VM.

I also had a spare Win10 Pro license floating around and installed and activated Win11Pro ARM. Once more using the Parallels image I got a lot of integration between macOS and Win11. Pass-through on the USB devices was easy and flowed well. This allowed for the access of my fdti consoled homebrew systems as well as the minipro to its windows based application.

Something odd though. While I could easily run wintel binaries with in the ARM windows 11 WM, and rosetta 2 helped some of the emulation. I could only run aarch64 binaries in the debian linux VM. I am sure there is a work around coming or already somewhere but its not a great disadvantage at this time.

SO far its been a rather successful transition to he M1.

Screen Shot 2022-03-30 at 7.33.52 pm.png
Screen Shot 2022-03-30 at 7.43.14 pm.png
Screen Shot 2022-03-30 at 8.03.59 pm.png
Screen Shot 2022-03-30 at 8.27.05 pm.png
Screen Shot 2022-03-30 at 8.06.08 pm.png
Screen Shot 2022-03-30 at 8.08.30 pm.png
 
Last edited:
  • Like
Reactions: retr01 and Patrick

speakers

Tinkerer
Nov 5, 2021
98
76
18
San Jose, CA
peak-weber.net
I've recently upgraded from M1 Air to M2 Air, and I fancied trying out the Ventura beta in a VM. UTM is a convenient frontend to qemu and the Apple virtualization framework. It's easy enough to set-up a Monterey VM and then upgrade to Ventura. Sadly, a limitation prevents the VM logging into iCloud -- but otherwise it provides a decent preview of macOS 13.

I also noticed that (thanks to qemu) UTM can emulate PPC (and other archs). There's a pre-packaged MacOS 9.2 VM that runs handily on Apple Silicon.
 

retr01

Senior Tinkerer
Jun 6, 2022
2,473
1
793
113
Utah, USA
retr01.com
$10 using UTM is a lot better than whatever for Parallels. :D I noticed the downside is the lack of hardware graphics acceleration support, but I do not need that for occasional use. :)

Thank you, @speakers!
 

davidg5678

Tinkerer
Oct 30, 2021
60
38
18
$10 using UTM is a lot better than whatever for Parallels. :D I noticed the downside is the lack of hardware graphics acceleration support, but I do not need that for occasional use. :)

Thank you, @speakers!
UTM is based on open source and is free if you download it directly from the creator's website --the paid version on the Mac app store is considered a donation.
 

retr01

Senior Tinkerer
Jun 6, 2022
2,473
1
793
113
Utah, USA
retr01.com
UTM is based on open source and is free if you download it directly from the creator's website --the paid version on the Mac app store is considered a donation.

Gotcha. :) One advantage of the app store is the updates are easy on the fly. Unless the UTM has an updater available within the app?
 

speakers

Tinkerer
Nov 5, 2021
98
76
18
San Jose, CA
peak-weber.net
Although UTM is convenient for running potted configs from the gallery, I find that for creating other configurations it adds another level of complexity. In particular for QEMU, it makes configuration switches more difficult to set.

I've been experimenting with QEMU instances (guests) on a modern Mac to provide convenient disk image editing and virtual bridging. Taking inspiration from https://www.emaculation.com/doku.php/qemu and using the VMNET Hypervisor framework for bridged networking:
  • it's relatively easy to run a mac68k (Quadra800) emulation directly on Blue/ZuluSCSI drive images. This can use AppleTalk over ethernet to communicate with other physical vintage machines (or other QEMU guests).
  • A PPC guest running MacOS9.2 (including the UTM gallery example) also works well.
  • But a PPC G4 guest running OSX Tiger is perhaps the best. This is able to serve AppleTalk with vintage machines running 7.6 and AppleShare3.8.3, and AFP/SMB/NFS to other machines. The host Mac can connect to the Tiger guest over AFP allowing files to be bridged onwards. The Tiger guest also accepts VNC sessions from wherever. Furthermore, at idle, a Tiger guest sleeps and consumes no host cpu resources (unlike earlier OSes that spin and cause QEMU to spin likewise) -- so the guest can be left permanently running even on a laptop.
 

Patrick

Tinkerer
Oct 26, 2021
434
1
224
43
Yep .. I've used minivmac on Intel machines for while and it runs like a charm under Rosetta2 on arm64.
i thought it was kinda neat to .... run mini vmac through Rosetta ... that is going through two layers.

I did buy it. and you can get a custom build with arm. so thats kinda neat also.
 

rjkucia

Tinkerer
Dec 21, 2021
233
81
28
Madison, Wisconsin, USA
Something odd though. While I could easily run wintel binaries with in the ARM windows 11 WM, and rosetta 2 helped some of the emulation. I could only run aarch64 binaries in the debian linux VM. I am sure there is a work around coming or already somewhere but its not a great disadvantage at this time.
I realize this is about a year old, but I didn't see anyone else respond to this point. Intel x86/-64 binaries will in general not run at all on an ARM host (or a host on any other architecture for that matter). The only reason they work on macOS/Windows 11 is because each of those OSes have built in an emulation layer to support it. I would not expect any Linux distribution to have one of these. Maybe someone has made or is working on an x86-on-ARM compatibility layer for Linux, but that's a lot of work, and there aren't a lot of incentives for such a project.

Also, a small point of correction - Rosetta 2 will not be in play if you're running an ARM Windows 11 VM. The translation from x86 to ARM would have to happen entirely within the Windows VM. Windows does have its own emulation/compactivity layer that handles this, unlike Debian.