Windows 10 on the Raspberry Pi 4

As far as computers go, Raspberry Pi’s are cheap. The latest (and vastly incompatible) Pi4 is no real exception. Now you’d think Microsoft would want to get WoA (Windows on ARM) into as many hands as possible to get people to port apps to the new cpu architecture. But that is not the case.

As of this moment there is no real desktop machines, the only route to go is with the laptops, which are the few models from Lenovo, HP, Acer and Microsoft themselves. Brand new these things are not cheap, and of course people find out quickly enough that the emulation just isn’t quite there (not all that surprising) and of course the lack of native apps doesn’t help. It’s that chicken/egg problem that can only be solved by getting hardware into people’s hands.

Developers!

So getting back to to the Pi, on ETA Prime’s channel I saw this video, which quickly went over how to get Windows 10 up and running in no time flat.

On the Discord look for the #download-links and look for build 0.2.1 After you extract it, the image should be about 10GB

10,100,932,608 build 0.2.1.img

With a MD5 checksum of: aad51a0e02ba947d24d543ff8ed612b0

Use etcher to write the image to the SD. It took me about 5 minutes to do so. No bigge. I unplugged the SD/IDE/USB adapter thing I’m using, plugged it back in, and used Windows disk manager to expand the partition to take up the rest of the disk. It’s not terribly complicated to setup.

SSD Flashed
Right click and select Extend
The default option will consume the entire disk

After that slap in the SD to your Pi4 and away you go. Or so I first thought.

Realistically you also need:

  • A USB Hub
  • A USB Ethernet adapter (I have some cheapo no name realtek)
  • A USB audio card
  • A mini HDMI to regular human sized HDMI cables/adapters
  • a 5Amp USB charger for extra power!

As I found out rather quickly that the only peripherals that are working is the USB ports. However the USB controller has some DMA bug where it can’t xfer higher than 3GB which caps the current memory ceiling to 3GB.

Otherwise the Pi will think and reboot a few times, and about 15-30 minutes later (I didn’t time it, I walked out) you’ll be up and running Windows 10 on ARM!

It’s heavily customized in that when Windows boots up it is only consuming about 1GB of RAM. So that gives us just under 2GB for user programs. GREAT! Included is the setup program for the latest beta of Microsoft Edge (with the chromium engine) so at least you can actually hit web sites. However Google doesn’t like it, so if you are going to try to watch anything with DRM it will not work.

While many people complain about STEAM, game compatibility, really what on earth were you expecting? Naturally people will want to know how fast it is, and well… It’s not. Although it does have 4 cores, running at 1.5Ghz, there is barely any cache (well compared to an i7/Xeon), and it’s clearly not a power house of a box. The only real test of a machine like this is going to be native stuff. And speaking of, it’s nice that my previous builds for ARM still work! The sales guy that borrwed the ASUS should be back soon so I can do some side by side comparisons of how slow they are.

In addition to DOSBox, Neko98, and frontvm, I managed to get MAME 0.36 cross compiled and I had to disable the DirectX input and output, as although they do compile they have issues on the Pi4. So it’s GDI all the way. That said, it does run:

This isn’t the port you want, or the platform to play it on. I’m using the command line Visual C++ tools to build this, and MAME 0.37 drifted to being more of a MinGW thing, and I just don’t feel like fighting the build process.

Another point of fun, is that this processor & OS does have x86 compatibility you can take things to the extreme with OTVDM, and run Win16 based programs on Windows 10 for ARM! Not that I would know why you want Excel 3.0, but rest assured, it works fine.

Hit:1 http://ports.ubuntu.com/ubuntu-ports bionic InRelease
Get:2 http://ports.ubuntu.com/ubuntu-ports bionic-updates InRelease [88.7 kB]
Get:3 http://ports.ubuntu.com/ubuntu-ports bionic-backports InRelease [74.6 kB]
Err:1 http://ports.ubuntu.com/ubuntu-ports bionic InRelease
Unknown error executing apt-key

The platform supports WSL, so I went ahead and installed Ubuntu 18 & 20… and both have one apparently known catastrophic failure on the Pi’s. When trying to update packages the updater crashes. The fault is apparently in dirmngr, or the usual Linux bandaid of switching distros. There doesn’t appear to be any ‘fix’ to this, so if anyone knows what to do, I’m all ears. Also don’t enable WSL2, it’ll hang at the bootloader. I ended up having to reflash the disk.

In my quick conclusion, is this the RISC Windows workstation of the future? No, not really. It’s more the $50(+peripherals) tyre kicker edition. It’s a cheap way into the platform, to see what the fuss is all about. This machine feels like a low end i3, the CPU just isn’t there, it’s only a BCM2711 Cortex-A72, so there isn’t all that much to be expected. On the other hand it’s FAR FAR FAR cheaper than something like the Surface X. If you have the hardware it’s worth checking out if you are interested in non x86 Windows. Otherwise you aren’t going to miss much.

14 thoughts on “Windows 10 on the Raspberry Pi 4

  1. I would love to run full Windows 10 on my 8GB RP4. I haven’t found any way to run Windows 10, with my 2 4K monitors, on anything that’s absolutely quiet. I’d be willing to give up some speed, although it’s not clear to me how much speed I’d loose if I were running 64-bit Windows 10 that could use all 8GB of RAM.

    I’d be willing to bet that if Apple’s move to ARM is successful, and RP4s remain as popular as they are, that Microsoft would release an ARM64 version of Windows 10 in a couple of years. The question then would be whether all the other popular Windows 10 apps would be ported to ARM.

    • I almost think at this point Microsoft has painted themselves into some legal corner where they are obligated to provide ARM support for something, but they just don’t seem to care about it.

      Getting 10 running on the cheapest and most common boards ought to be an incredibly high priority to get people interested enough to port, and they just don’t seem to care.

      It’s an incredibly great job individuals have been able to do so far, but there really should be a larger push from MS.

      • My favorite take on it is that Windows on ARM isn’t a product, but rather a threat. That is, Microsoft doesn’t want to actually move off of x86, they just want good mobile x86 hardware.

        As I understand, Windows RT is basically why Intel started the whole contrarevenue (that is, selling Bay Trails at a loss by including support chips for free) thing that resulted in $60 Bay Trail Windows 8 tablets existing. RT couldn’t run x86 software (and Microsoft didn’t even allow development of native ARM Win32 software) or join domains, two of the biggest reasons why you’d buy a Windows tablet over an iPad.

        Of course, WoA had to follow through on that threat, hence it being real Windows editions and having x86 emulation… but then they’re backed into a corner by Qualcomm dropping the ball, too. (Even then, the WoA threat seems to have been used as a negotiating tactic for the Surface Go’s processor.)

        • It makes far more sense then their current strategy of a few laptops. I mean they couldn’t have all slept through the Balmer years, he did have ONE super valid point, without a critical mass of developers the platform is dead.

          On the one hand I’d have imagined that MS would be happy for the existence of cheap hardware they didn’t have to make, but could push a generation to use their tools and OS on, instead it’s like they have learned nothing about the rise of Python and solutions like docker/openstack.

          Granted Azure is capturing established products to their cloud but it’s not doing anything for kids/hobbyists.

          I should also add those $80 Windows 8 tablets were basically BING machines, you get cheap hardware running Windows into peoples hands with all the settings set to “Marketing YES”, and BING by default, and they generate revenue. You’d think they would want to continue that trend….

          • TBF, the Bing machines had all the same “marketing yes” defaults as a regular 8.1 machine.

            AFAIK, the only real difference was that the vendor was forbidden from installing their own shovelware that changed the default search engine away from Bing. Not that a tablet with 16 GiB of eMMC had room for anything, not even the kinds of shovelware that changed the default search engine.

          • I owned several, they were a modern technical miracle of a sub $100 computer. The later ones were really great, 64bit, quad core, 4GB of RAM.

            The problem was always the same, as you mentioned the onboard storage just wasn’t anywhere near enough. And it’s a shame I really liked the idea instead of Android cheap devices you could get a legit x86 machine.

  2. This might be a dumb question, but have you tried compiling GnuPG straight from source instead of trying to install from the package manager? It might behave itself better if it compiles locally on your machine.

  3. Haha this reminds me of old linux day’s. Where every nerd wanted to have linux, but most of his/her hardware wasn’t yet supported.

    I have ruined my Wacom’s two hardware-buttons, because touch clicking was not supported and I just wanted to use linux. Graphics was stuck at 640×480 and sound had a click-noise every second.
    So I used text console, hardware buttons and turned off sound.

    Ha, but yeah, I am using Linux and I got a free compiler along.

    Nils 🙂

  4. WSL2 was never going to work because it needs Hyper-V and that’s an entire can of worms on its own. Still, an interesting project and a viewport on what the delayed Windows 10X devices will be like (but hopefully those will be in better shape!)

  5. I came across this interesting exploration of running Windows 10 on the Raspberry Pi 4. The author highlights the affordability of Raspberry Pi computers, particularly the Pi 4, and shares a video tutorial from ETA Prime’s channel on getting Windows 10 up and running efficiently.

    The guide includes specific requirements, such as using a 256GB SD card, and emphasizes the need for additional peripherals like a USB Hub, USB Ethernet adapter, USB audio card, and mini HDMI to HDMI cables/adapters. The author shares their experience with the setup process, including addressing a DMA bug limiting memory usage to 3GB.

    The Windows 10 on ARM setup is described as heavily customized, consuming about 1GB of RAM upon booting, leaving just under 2GB for user programs. The author mentions successful installations of programs like Microsoft Edge and MAME 0.36, along with an interesting note about running Win16 based programs through OTVDM.

    The post concludes with a realistic perspective on the Raspberry Pi 4’s performance, acknowledging its limitations compared to higher-end systems but highlighting its affordability as a gateway into non-x86 Windows exploration.

    If you’re curious about running Windows 10 on Raspberry Pi 4 or looking for a cost-effective entry point into non-x86 Windows, this guide provides valuable insights.

Leave a Reply