v6.2.0-winrt
·
2 commits
to winrt
since this release
See the latest release, this one is outdated now.
Archival
Patched version by @driver1998.Prebuilt binaries are compiled with MSYS/MinGW64 for Windows x64 host.
- Use firmware from here: https://releases.linaro.org/components/kernel/uefi-linaro/15.12/release/qemu/QEMU_EFI.fd
- How to install WoA from WinPE:
@echo off
set WINPE=winpe9600.vhd
set HDD=sdcard.vhd
qemu-system-arm ^
-M virt,highmem=false ^
-cpu cortex-a15 ^
--accel tcg,thread=multi ^
-m 2G ^
-bios QEMU_EFI_1512.fd ^
-device VGA ^
-device usb-kbd ^
-device usb-tablet ^
-device usb-storage,drive=usbstick -drive id=usbstick,if=none,file=%WINPE% ^
-device virtio-scsi-pci,id=scsi0 -drive if=virtio,file=%WINPE% ^
-drive id=mydrive,if=none,file=%HDD% -device sd-card,drive=mydrive ^
-rtc base=2013-07-15,clock=vm
- How to boot WoA that you have deployed/installed:
@echo off
set HDD=sdcard.vhd
qemu-system-arm ^
-M virt,highmem=false ^
-cpu cortex-a15 ^
--accel tcg,thread=multi ^
-m 2G ^
-bios QEMU_EFI_1512.fd ^
-device VGA ^
-device usb-kbd ^
-device usb-tablet ^
-device virtio-scsi-pci,id=scsi0 -drive if=virtio,file=%HDD% ^
-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
How this technically works:
- Insert the same disk image into both SD card and VirtIO HDD
- UEFI recognizes VirtIO and boots from it
- Windows does not see VirtIO but does see SD card
- UEFI did not recognized SD card, so it only reported one HDD controller to the OS
- Windows does not go mad and proceeds to boot
Tested Windows on ARM builds:
- ✔️ Windows RT 8.1 - build 6.3.9600.17328.armfre.winblue_r3.140827-1500
- ✔️ Windows 10 Enterprise - build 10.0.15035.0.woafre.rs2_release.170209-1535
- ❌ Windows RT beta - build 6.2.8330.0.armfre.fbl_woa.120424-2227
Known issues:
- Keyboard will not work in UEFI
- UEFI only can boot from VirtIO, but we're doing a trick here
- 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 detected