Windows 10 ARM64 on QEMU

(This is a guest post by Antoni Sawicki aka Tenox)

Microsoft is releasing Windows 10 for ARM64 CPUs and this time, unlike Windows RT fiasco, there will be a full desktop app support including a dynamic binary translator to allow running existing x86 apps on ARM CPU, much like FX!32 on Alpha NT or Rosetta on Mac OS X.

Latest Visual Studio updates now bring official ARM/ARM64 support for Desktop Apps, little hidden, but here is how to enable it.

Being able to compile Windows ARM apps, I wanted to try to actually run them, but … on what exactly? There are some developer evaluation boards. Apparently someone managed to run it on Raspberry PI. Most importantly however you can run Windows 10 ARM64 on QEMU. This is some serious Fun With Virtualization!

Windows 10 ARM64 running on QEMU

I’m not claiming to be the first. Clever people have already done it. I just wanted to make it little easier for the lazier of us. Here is how.

Follow the link above but skip the shady UUP business in step #3 and download ready made iso instead. You can google the iso image from windows.cmd and it will take you to this link. You need the rest of the files like UEFI firmware and virtio drivers.

For the even more impatient here is a ready to run image with Windows pre-installed. Because QEMU now comes with DLL HELL I’m not including it in the archive. You will have to install it separately.

Go have fun and port some apps to ARM64 with free community edition of Visual Studio. I’m going to start with Aclock 🙂

7 thoughts on “Windows 10 ARM64 on QEMU

  1. I keep hearing conflicting reports that Microsoft is going to limit running true ARM Win32 API binaries from running on this, limiting native software to Metro/Modern APIs instead (and leaving Win32 stuff to being x86 emulated apps only). It would be a shame, as many programs just need a re-compile to run on ARM.

    • Native ARM64 binaries run just fine on this, as long as you don’t install Windows 10 S or enable “S mode” in recent builds.

      ARM32 binaries are also supported using the same WoW64 mechanism that runs x86 binaries on x64. Unfortunately x64 binaries aren’t currently supported (due to the binary translator being based on Connectix, which is 32-bit only).

  2. strangely doesn’t work with latest qemu 3.0 windows..
    also had older qemu 2.10 floating around and doesn’t work..
    so seems only qemu 2.11 and possibly 2.12 work..
    any clue as to why 3.0 doesn’t work?

  3. @oscar > Just add the following line, it worked for me.
    -machine highmem=off ^

    Although, I don’t think the virtio-win drivers are install in this build

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.