Apple M1 Vmware



Recently I purchased an M1 equipped 13” MacBook Pro. Overall the machine has been absolutely amazing however I have 1 big issue transitioning from my old Intel Hackintosh:

  • Missing macOS guest VMs

That is a false statement from VMware as they were assuming Apple sells only Intelx86 computers. Their latest Fusion v12.1.0 does NOT work with Apple M1 and VMware needs to step up its game soon to catch up with new M1 platform. In fact it should run so smoothly when it's supported! Originally Answered: Can you run VMWare on Macs with Apple’s M1 chip? Currently you cannot run VMWare on Macs with Apple’s M1 chip. However, VMWare has announced that they are actively working on updating VMWare Fusion for Apple’s M1 but they cannot yet provide a timeline for when that will be.

While its clear that both Parallels and VMWare will support Apple Silicon with macOS guests in the future, the question is when. Additionally, it’s also unclear if we’ll ever get x86 emulation from them or if its strictly ARM64 only. A bit of a shame especially as I do frequently boot old macOS VMs versions to check for bugs.

To get around this, I wanted to see if our good ol friend QEMU can help us out and do full x86 emulation.

For today’s experiment, we’ll try and see if we can get to the macOS recovery environment with a vanilla macOS BaseSystem. Of course we’ll be getting a bit of help from OpenCore to move this along.

Getting started

Before we beging, we’ll need a few things:

  • UTM
    • A very nice wrapper for QEMU in macOS, additionally also supports iOS
    • See here about installing on iOS: Install
  • OpenCore Image
    • Our bootloader to help launch macOS, there’s a few options to choose from:
      • EFI-MODERN: macOS 10.15 and newer supported
      • EFI-LEGACY: Mac OS X 10.6 through 10.14 supported
      • EFI-i386: Mac OS X 10.4 through 10.7 supported
  • OVMF Binary
    • Our UEFI image for QEMU
      • Note we want edk2.git-ovmf-x64 specifically
      • iOS Users can download the pre-extracted image here: OVMF.bin
  • macOS Image
    • See macrecovery in OpenCorePkg on how to download from Apple’s servers
      • This should provide you with a BaseSystem/RestoreImage.dmg for use to play with
    • For educational purposes, I’ve also provided a pre-installed OS image:
      • Catalina-SETUP.qcow2(Mirror)

To start, open up the UTM.dmg and add UTM.app to the Applications/ folder.

  • For iOS users, see here: UTM iOS Install

Next, download OVMF from the Qemu firmware repo and run the following:

From here, we can open UTM.app and get started:

We’ll first want to make a fresh VM, here I’ll list a few of the required settings to boot:

System

  • Architecture: x86_64
  • System: Standard PC (Q35 + ICH9, 2009)
  • Memory: 4096MB
  • Force Multicore: True
    • Note forcing multicore greatly increases the VM speed, however bugs may appear with this.

QEMU

  • -cpu
  • Penryn,+ssse3,+sse4.1,+sse4.2

Drives

Apple m1 vmware download
  • OVMF.bin:
    • Image Type: BIOS
  • EFI.img:
    • Image Type: Disk Image
    • Interface: USB
  • BaseSystem.dmg:
    • Image Type: Disk Image
    • Interface: USB
  • Extra Disk(If you plan to install macOS):
    • Image Type: Disk Image
    • Interface: USB
    • Size: 30720(ie. 32GB)

Network

  • Enabled: True
  • Emulated Network Card: VMWare Paravirlulized Ethernet V3

Once these are all done, we can now boot our VM!

Booting the VM

Apple M1 Vmware
1. OVMF Start2. OpenCore Picker3. macOS Kernel Starts

The boot process is slow however, and I mean very slow. But after 17min(Reduced to 8min with Force Multicore) we finally reach macOS’s recovery screen!

The OS is unusable to say the least, and unfortunately won’t get much better even with tinkering. However the fact QEMU is able to emulate an Intel Penryn PC so well is quite remarkable, and OpenCore has made this much easier to build and boot.

Bonus pic, installed Catalina!

Bonus pic x2, High Sierra Geekbench scores!

Troubleshooting

No mouse control

If your mouse doesn’t work, try pressing Control+Option+Arrows

Recovery Contact Error: 1

Virtualbox On M1

For Recovery Server contact errors, verify your time is correct in the VM by opening terminal:

Recovery Contact Error: 2

Vmware

If you continue to have Recovery Connection issues, open terminal and run the following:

Can’t start x86 VM in macOS 11.2 RC 20D53

This is a known issue, using QEMU’s TCG in the latest beta will crash QEMUHelper that UTM relies on. Current solution is to downgrade to 11.2 beta 2 (20D5042d) or older.

We’ve reported a feedback to Apple regarding this:

  • Feedback ID: FB8978379

Apple M1 Vmware Pro

UPDATE: @osy discovered that in the 11.2 RC 20D53, Apple now blocks mprotect on MAP_JIT regions. QEMU uses mprotect to guard pages at the end of the JIT region. This means that QEMU will most likely need to be updated to either remove the ASSERT or guard the page after MAP_JIT instead. UTM has already been updated for this: qemu: fix crash on macOS 11.2

With M1 Macs mere days away for early adopters, those who need to run virtual machines on their Macs may have a bumpy time ahead.

It is important to note that currently available versions of Parallels® Desktop for Mac cannot run virtual machines on Mac with Apple M1 chip. Good news: A new version of Parallels Desktop for Mac that can run on Mac with Apple M1 chip is already in active development.

When Apple Silicon Mac was first announced during the keynote at WWDC on June 22 of this year, Apple demoed a Parallels Desktop for Mac prototype running a Linux virtual machine flawlessly on Apple Silicon. Since WWDC, our new version of Parallels Desktop which runs on Mac with Apple M1 chip has made tremendous progress. We switched Parallels Desktop to universal binary and optimized its virtualization code; and the version that we are eager to try on these new MacBook Air, Mac mini and MacBook Pro 13″ looks very promising.

Apple M1 Vmware Price

VMWare Fusion isn’t ready yet either, according to this tweet:

So excited for todays announcements from @Apple!

While we're not quite ready to announce our timeline, we're happy to say that we are committed to delivering VMware virtual machines on #AppleSilicon! pic.twitter.com/en1FNorxrM

— VMware Fusion (@VMwareFusion) November 10, 2020

Even when these and other virtualization tools are ready,1 running Windows as a VM atop a M1 Mac probably isn’t going to be. So far, all the public has seen running virtually on M1 Macs is ARM-based Linux, back at WWDC.

Mac M1 Virtual Machine

Microsoft has a version of Windows running on ARM chips, but as of this summer, things didn’t look great for getting it to run virtually on the new Macs:

Apple M1 Vmware Linux

“Microsoft only licenses Windows 10 on ARM to OEMs,” says a Microsoft spokesperson in a statement to The Verge. We asked Microsoft if it plans to change this policy to allow Windows 10 on ARM-based Macs, and the company says “we have nothing further to share at this time.”

That said, ARM Windows is getting better. Back in September, Microsoft announced that the ARM version of Windows 10 is gaining x64 emulation:

We are excited about the momentum we are seeing from app partners embracing Windows 10 on ARM, taking advantage of the power and performance benefits of Qualcomm Snapdragon processors. We heard your feedback and are making Microsoft Edge faster while using less battery, and announced that we will soon release a native Microsoft Teams client optimized for Windows 10 on ARM. We will also expand support for running x64 apps, with x64 emulation starting to roll out to the Windows Insider Program in November. Because developers asked, Visual Studio Code has also been updated and optimized for Windows 10 on ARM. For organizations, we’re committed to helping them ensure their apps work with Windows 10 and Microsoft 365 Apps on ARM64 devices with App Assure.

Before this, the ARM version of Windows could only emulate 32-bit applications. It’s a nice improvement, and maybe one day it will matter to Mac users.

  1. Oh, and Boot Camp is totes dead. Docker is currently busted, but should work in the future. ↩