v6.2.0-winrt-v2
·
1 commit
to winrt
since this release
See the latest release, this one is outdated now.
Archival
# QEMU that can emulate Windows on ARM (Windows RT)Patched version by @driver1998 plus new UEFI firmware.
Fixed issues in this release:
- Keyboard is now working in UEFI
- UEFI now can boot from:
- SD card (this is our HDD)
- USB thumbdrive
- USB CD/DVD-ROM
Prebuilt QEMU binaries are compiled with MSYS/MinGW64 for Windows x64 host.
While testing, make sure to use firmware binary from this release.
Configuration with boot priority: 1) SD card, 2) USB disk
This is how you install WoA from WinPE disk image, and then boot the system.
@echo off
set HDD=sdcard.vhd
set USB=winpe9600.vhd
qemu-system-arm ^
-M virt,highmem=false ^
-cpu cortex-a15 ^
--accel tcg,thread=multi ^
-m 2G ^
-bios QEMU_EFI_1512_driver1998.fd ^
-device VGA ^
-device usb-kbd ^
-device usb-tablet ^
-drive id=mydrive,if=none,file=%HDD% -device sd-card,drive=mydrive ^
-drive id=usbstick,if=none,file=%USB% -device usb-storage,drive=usbstick ^
-rtc base=2013-07-15,clock=vm
Configuration with boot priority: 1) USB CD-ROM, 2) SD card
This is how you install WoA from CD/DVD ISO image, and then boot the system.
@echo off
set ISO=9600.17053.winblue_refresh.141120-0031_woafre_client_CoreARM_O15_en-us-IR5_CCSA_WOAFRER_EN-US.iso
set HDD=sdcard.vhd
qemu-system-arm ^
-M virt,highmem=false ^
-cpu cortex-a15 ^
--accel tcg,thread=multi ^
-m 2G ^
-bios QEMU_EFI_1512_driver1998.fd ^
-device VGA ^
-device usb-kbd ^
-device usb-tablet ^
-drive id=usbcdrom,if=none,media=cdrom,format=raw,file=%ISO%,readonly=on -device usb-storage,drive=usbcdrom ^
-drive id=mydrive,if=none,file=%HDD% -device sd-card,drive=mydrive ^
-rtc base=2013-07-15,clock=vm
Result should look like this: https://twitter.com/x86corez/status/1523303255438028800
Tested Windows on ARM builds:
- Windows RT beta - build 6.2.8330.0.armfre.fbl_woa.120424-2227
- ❌ Windows PE
- ✔️ Full installation (works, albeit very unstable)
- Windows RT 8.1 - build 6.3.9600.17328.armfre.winblue_r3.140827-1500
- ✔️ Windows PE
- ✔️ Full installation
- Windows 10 Enterprise - build 10.0.15035.0.woafre.rs2_release.170209-1535
- ✔️ Windows PE
- ✔️ Full installation
Known issues:
- Booting from SD card is slow, you may think the OS is hung (give it some time)
- USB EHCI emulation is not perfect and may get broken, especially during installation
- Works only on 1 CPU core, it's possible to add more, but they are not being started:
- ACPI MADT table is missing
- MpPark protocol is not implemented in CPU
- WFI has to be handled
- Each CPU should have own GIC
- Not tested on Linux with KVM yet, maybe SMP will work there
Appendix A - building UEFI firmware:
UEFI firmware was built on Debian 11 with GCC 11.
git clone https://github.com/driver1998/edk2-winrt
cd edk2-winrt
make -C BaseTools
source edksetup.sh
export GCC49_ARM_PREFIX=arm-linux-gnueabihf-
build -a ARM -t GCC49 -b RELEASE -p ArmVirtPkg/ArmVirtQemuWinRt.dsc