Windows 11 Arm VMs on a Raspberry Pi, with BVM

With the release of a Windows 11 for Arm ISO, it's easier than ever to get an officially-supported install of Windows on many different Arm PCs—now including a Raspberry Pi.

The Windows on R seems like it has run out of steam, as many open source initiatives do, after years of being bludgeoned with support requests being the only way to really get Windows going on a Pi.

But GitHub user (and high-schooler) Botspot just emailed me his BVM project, short for 'Botspot Virtual Machine'.

BVM installing Windows 11 on a Raspberry Pi

This project includes a handy CLI and GUI utility to configure a Windows 11 VM using QEMU/KVM. I'll let you peruse the README for full specs, but the most important bits for most people:

  • Setup is streamlined (and I've tested it successfully on a 4GB and 8GB Pi 5)
  • It passes through network (WiFi and wired) and audio so that should all work out of the box
  • connect mode allows filesystem passthrough, so you can share files between Linux and the VM
  • USB passthrough is coming soon (hopefully!)
  • GPU passthrough is not working—but that's on Microsoft and Raspberry Pi/Broadcom, right now you can't use any GPUs without drivers, and there are precious few drivers for GPUs in Windows on Arm!

To that last point, Raspberry Pi actually maintains a Board Support Package for Windows 10 with certain drivers included. Could they someday include a driver for the VideoCore GPU? Not sure, but it'd be quite awesome if they had full hardware-accelerated Windows 11 support.

I ran through the entire setup process on a Pi—two times in fact—and it's as easy as it says in the README. The GUI could probably be streamlined a little further, but right now it breaks out each step into its own operation. That's probably useful in case anything goes wrong, for support you can just say "Step 3 failed with this message" and that narrows it down a lot more, resulting in fewer GitHub issues with 1,000s of lines of log output!

Here's a video of the entire process on a Pi 5, end-to-end:

I ran Geekbench for arm64 within Windows and compared it to a couple runs on the Raspberry Pi running Linux natively, and the results surprised me:

Scenario Single Core Multicore
Windows 11 VM 782 1736
Pi 5 - Launch Day Firmware 748 1507
Pi 5 - Latest Firmware 899 2169

If you want to give it a try, it apparently runs on Pi 4 as well, and it's recommended you have a Pi model with at least 4 GB of RAM.

Comments

FYI: even on my pi4-4GB, it wouldn't work without effectively adding memory and swap using Pi-Apps "More RAM" option, as recommended by Botspot.