为了开发目的,如何在模拟器中运行Windows RT(Windows 8的受限ARM版本)?这个问题包括两个部分:
无法在ARM上真正模拟Windows RT技术。您有两个选择...
1)去接起Surface平板电脑。
2)与您当地的Microsoft技术传播者联系,以查看他们是否有可用的借贷者硬件。
此外,您当地的Microsoft Evangelist团队可能还会举行Windows 8开发人员活动,他们可能会准备好测试硬件供您尝试。如果您在美国,可以在http://msdnevents.com中找到这些事件的列表。
我知道这个问题是7年前提出的,但是现在可以在最新的QEMU 4.2.0中模拟ARM上的Windows。
qemu-system-arm.exe
:用NOP替换此十六进制序列4531C931D24C8D05BE515C004889F1E87AD82E00
=> [ C0]-替换了此部分:9090909090909090909090909090909090909090
9600.17053.winblue_refresh.141120-0031_woafre_client_CoreARM_O15_en-us-IR5_CCSA_WOAFRER_EN-US_ESD_2F1E1C773E39C4672F52B1F3A0AE7844FD837B23.esd
提取:esd-decrypter-wimlib-8.7z
viostor.sys
-如果您在Visual Studio中自己构建了驱动程序,请确保使用https://www.betaarchive.com/forum/viewtopic.php?f=62&t=40522和对它们进行测试签名(所有Inf2Cat /driver:C:\Drivers\ /os:8_ARM,6_3_ARM
和.cat
文件);驱动程序准备就绪后,您可以使用.sys
+boot.wim
+ install.wim
]将它们分为dism /Mount-Wim
和/Add-Driver
/Unmount-Wim
和dism /Apply-Image
将Windows文件安装到创建的磁盘,并使用install.wim
安装EFI文件bcdboot
set BCD=E:\EFI\Microsoft\Boot\BCD
bcdedit /store %BCD% /set {globalsettings} testsigning on
bcdedit /store %BCD% /set {globalsettings} nointegritychecks on
PCI MMIO区域存在已知问题,因此USB输入将无法工作。您可以通过将set HDD=windows-on-arm.vhd
set ISO=en_windows_8.1_ir4_ARM_dvd.iso
qemu-system-arm ^
-M virt ^
-cpu cortex-a15 ^
-smp 2 ^
--accel tcg,thread=multi ^
-m 2G ^
-bios QEMU_EFI_1512.fd ^
-device VGA ^
-device ich9-usb-ehci1 ^
-device usb-kbd ^
-device usb-tablet ^
-drive if=virtio,file=%HDD% ^
-device virtio-scsi-pci,id=scsi0 ^
-device scsi-cd,drive=install,bus=scsi0.0 ^
-drive if=none,format=raw,id=install,file=%ISO%,readonly=on ^
-rtc base="2013-07-15",clock=vm
替换为-M virt
来解决此问题,但是使用此选项,Windows 8.1 RT会使用代码-M virt,highmem=false
抛出BSOD。
众所周知,ARM的Windows 10不会抛出此BSOD代码,并且可以在SYSTEM_THREAD_EXCEPTION_NOT_HANDLED
的QEMU中很好地工作。您可以使用Google来获取它:-M virt,highmem=false
:
]