Windows on Raspberry
Table of contents
The WoR Project
I wanted to have the good old Windows experience on my Raspberry Pi and I guess it was the right time to get it.
To get Windows 10 on the RPi I used a project called Windows on Raspberry.1 It’s an installer which prepares the storage-device, you want to use - places the files, downloads the right firmware and drivers.
It’s really easy to use, you just need to get your hands on an ISO with Windows 10 Insider Preview for ARM64.
The legal way is to download the UUP files (Unified Update Platform) directly from Microsoft and build an ISO. Luckily you can use the scripts generated by uup.rg-adguard.net.2
But I won’t make photo story for each step where you have to click. It very self-explanatory.
Before te Windows 10 Insider Previews for ARM64 the only way to get a Windows-ish feeling was using Windows 10 IoT for Raspberry Pi.3
It was no operating system like the one on your personal computer. It was an OS designed to run code on, nothing more. You could write UWP-apps (Universal Windows Plattform) and execute them on the RPi2/3.
After October 2018 the project ended, no updates for RPi4 were ever released.
Hardware & Benchmarks
For my test with Windows on Raspberry I ordered a Raspberry Pi 4 Model B with 8 GB RAM.4 I only had 1 GB versions laying around and a little bit more memory was needed.
A few weeks before I tried to install Windows on a RPi4B 1GB with a SDHC-card (class 10). The memory wasn’t fully allocated but the SDHC-card was at 100% all the time.
Installing and booting took hours. It was pain to watch and use.
Booting from USB-devices on a RPi4 is supported since September 2020. So I used a M.2 SSD on an USB 3.0 to M.2-adapter and it was quick! Creating the SSD and installing Windows 10 was done in minutes, not hours.
Of course I had to take a look how much clock speed the BCM2711B0 could handle. With air-cooling 2,350 MHz at 1.1 V (over_voltage=14
) was rock-stable. Not bad!
Everything was fast and I tought I’m using a normal PC for this Windows, except some x86_64 programs refused to work, mainly benchmark-tools.
Other programs worked like a charm. The emulation of x86_64 code by Windows is not that bad.
Beside the test, if and how Windows 10 ARM64 works on a Raspberry Pi, I wanted to run some benchmarks.
I managed to get four benchmarks running - SuperPi5, wPrime6, Cinebench R207 and the HWBOT x265 Benchmark8.
Others like Cinebench R15, Geekbench 3 & 4 refused to run. Unfortunatelly the BenchMate, too.
CPU-Z
Since CPU-Z doesn’t recognize all information, no validation was possible. See the screenshot above.
ARM-based computers running an ARM64-Windows is not the normal environment for CPU-Z. Maybe in the future, we’ll get better read-outs.
SuperPi
SuperPi 1M was done in 53sec 812ms, while 32M was done in 48min 39sec 422ms.
These two scores are the only ones listed at HWBOT, so I cannot compare if it’s good or not. If you want try your RPi with Windows 10 ARM64, go for a couple of SuperPi runs and post your score at HWBOT.
wPrime
wPrime luckily had one score to compare to. With wPrime 32M I surpassed 59sec 100ms (@ 2,000 MHz) with my 39sec 125ms (@ 2,350 MHz).
Not quite a challenge with +350 MHz, but I guess a decent run with the hardware.
wPrime 1024M was done in 22min 19sec 468ms, but without a score to compare to.
Cinebench R20
Since Cinebench R15 won’t start I was lucky to get the R20 version working. It simply started.
With overwhelming 146 marks I finished the benchmark and it took quite some time.
The RPi is not made to do this. It was no fun to watch.
HWBOT x265 Benchmark
The 4th and last benchmark which started was the x265 Benchmark from HWBOT where I managed to get 1.26 fps at 1080p and 0.31 fps at 4K.
x265 realtime transcoding on a Raspberry Pi has not arrived, yet.
Today
Let’s talk about my Windows on ARM experience. Like I said, it was quite nice. Doing the normal things felt quick and responsive.
Trying to install and run software made for benchmarking…it was tricky or impossible. But that’s not the most common things all users want.
The x86 emulation was introduced back in 2017 but x64 emulation was released just recently in December 2020.9
It’s progress.
But it’s a developer version. Hitting it too hard with overclocking and full-load led to a bricked installation. More than one time Windows won’t boot because it crashed or I made an update provided by the normal Windows Update-routine. Not the best idea.
Today with Windows on ARM or let’s say Windows on Raspberry you have a good time to tinker. Even with the really straight forward installation from the WoR project, it’s not for everyday usage, it’s a preview version of an OS, what could be possible in the future.
The Future
The future is ARM, but the future is not today.
Look at your mobile phone. Look at Apple with its M1-SoC. Even servers made for computer centers getting ARM-based CPUs with high core counts.
To work on battery, the chips must be efficient. Now more and more powerful devices with bigger batteries like the Apple MacBook Air M1 (2020)10 or computers with processor powered straight up from the wall, like the Phytium D2000 from FeiTeng11 are avaiable or become available this year.
With enough power the manufacturers can work on their performance. And they will do it, for sure.
2021 won’t be the year ARM-based CPUs overtake Intel oder AMD, but in my opinion ARM is on its way. In about 5 years, we’ll see, what kind of desktop hardware powered by ARM-processor is available.
Beside the hardware the operation systems need to run code. Linux on ARM is the most common thing, Apple’s Big Sur with its Rosetta 2 emulation layer is impressive12 and even Microsoft getting its way with Windows on ARM and the x86_64 emulation.
Let’s give them 5 more years. Maybe, my gaming system is still based on Intel, AMD and NVIDIA running x86_64 code, but I guess ARM will hit the market, starting with office systems.
If Microsoft get’s its emulation fast and stable, the companies will migrate.