Skip to content

Instantly share code, notes, and snippets.

@osy
Last active August 9, 2023 12:58
Show Gist options
  • Star 35 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save osy/10d0ac0210f0eb99474ae31cf8d6dd9e to your computer and use it in GitHub Desktop.
Save osy/10d0ac0210f0eb99474ae31cf8d6dd9e to your computer and use it in GitHub Desktop.
UTM on Apple M1 Guides

Thanks to the work of @agraf, @KhaosT, @imbushuo, and others, we have Virtualization.framework working on M1 Macs. These changes have been merged with QEMU v5.2.0 RC3 (will rebase once the final release is out) and integrated with UTM, a brand new QEMU frontend designed in SwiftUI for iOS 14 and macOS 11.

Screenshot

Downloads

Usage

  1. Install UTM.app to your Applications directory.
  2. Copy/move Windows10_InsiderPreview_Client_ARM64_en-us_20231.VHDX to Windows 10 ARM.utm/Images/.
  3. Double click Windows 10 ARM.utm to import into UTM.
  4. Click UTM -> Preferences in the menu bar and select "Try to use hardware hypervisor when available".
  5. By default the VM will allocate 8GB of RAM, you may want to lower that by configuring the VM if your Mac only has 8GB of RAM.
  6. Run the VM.

Install Network Drivers

These directions were taken from this gist.

  1. Mount device drivers by selecting the VirtIO drivers ISO in the main window or from the toolbar.

  2. Disable device driver signature enforcement:

    Boot Windows, then right click Windows Start button, then select Command Prompt (Admin).

    Use BCDEdit to enable test-signed device drivers.

    Bcdedit.exe -set TESTSIGNING ON
    

    Then reboot Windows.

    See here for the details.

  3. Install driver:

    Once Windows booted again, then right click Windows Start button, then select Device Manager.

    In Device Manager, select View menu then Devices by Connection.

    Navigate in the device tree, select ACPU ARM64-based PC, Microsoft ACPI-Compliant System, PCI Express Root Complex, then you will see three Unknown device there. Select the first one. (There are many Unknown device in tree but the first one under PCI Express Root Complex is the VirtIO NIC.)

    Right click Unknown device then select Update Drivers, then Browse my computer for drivers, then select D:\NetKVM\w10\ARM64.

    Click Next to install Red Hat VirtIO Ethernet Adapter.

Known Issues

  • BUGCODE_USB_DRIVER BSOD on boot: This happens sometimes and you can just reboot a few times and it will go away. This will be fixed in the next release.

Help & Support

Please report bugs and crashes to Github (after searching) to help improve the project! If you want help or to discuss the project, visit our Discord.

This file has been truncated, but you can view the full file.
@reedog117
Copy link

These instructions no longer work with the error qemu-aarch64-softmmu: -device ramfb: duplicate fw_cfg file name: vgaroms/vgabios-ramfb.bin when using the most recent Windows 10 build 22598 and UTM 3.2.4 (58). I had already modified the config.plist to point to the slightly different filename of the vhdx.

@elzii
Copy link

elzii commented Nov 3, 2022

The utm.zip link now 404s -- could you kindly provide an alterative?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment