如何模拟Windows RT

问题描述 投票:7回答:2

为了开发目的,如何在模拟器中运行Windows RT(Windows 8的受限ARM版本)?这个问题包括两个部分:

  • 获得映像:是否存在安装映像(对于MSDN中的供应商而言,...)?我可以拍摄Surface RT磁盘的快照(如何?),也可以从恢复数据中以某种方式提取快照(我不知道恢复系统的工作原理,但是有一个功能可以完全擦除并重新安装Surface上的软件)。
  • 运行图像:我可以在其上进行模拟吗?我听说过QEMU,但它的运行速度很慢。另外,程序必须仿真必要的硬件(Tegra-3)。
windows-8 arm emulation windows-rt
2个回答
3
投票

无法在ARM上真正模拟Windows RT技术。您有两个选择...

1)去接起Surface平板电脑。

2)与您当地的Microsoft技术传播者联系,以查看他们是否有可用的借贷者硬件。

此外,您当地的Microsoft Evangelist团队可能还会举行Windows 8开发人员活动,他们可能会准备好测试硬件供您尝试。如果您在美国,可以在http://msdnevents.com中找到这些事件的列表。


0
投票

我知道这个问题是7年前提出的,但是现在可以在最新的QEMU 4.2.0中模拟ARM上的Windows。

遵循步骤:

  1. 修补QEMU以报告可用的EL3 TrustZone:https://github.com/TeoIzAwezome/rtemu/commit/0f8b8ec18725cd0f66a39b5520fb6a435a757f95-如果您使用的是Windows,并且不想从源代码构建QEMU,则可以修补qemu-system-arm.exe:用NOP替换此十六进制序列4531C931D24C8D05BE515C004889F1E87AD82E00 => [ C0]-替换了此部分:

“”

“”

  1. 下载用于QEMU 32位ARM平台的Linaro固件,特别是15.12版本,这是在ARM上无问题地启动Windows的最后一个版本:9090909090909090909090909090909090909090
  2. 下载Windows RT 8.1的ESD映像,可以从Microsoft公开获得。您可以在这里找到下载链接https://releases.linaro.org/components/kernel/uefi-linaro/15.12/release/qemu/QEMU_EFI.fd或使用带有以下字符串的Google:https://tech.myonlylonely.com/wimboot-for-surface-2-en/
  3. 将ESD转换为ISO或仅用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
  4. 您将需要针对32位ARM平台编译的QEMU的VirtIO驱动程序,此处提供了预编译的https://www.tenforums.com/software-apps/27180-windows-10-recovery-tools-bootable-rescue-disk-2.html驱动程序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
  5. [如果您不想从ISO引导和安装,则可以创建VHD / VHDX磁盘映像并对其进行格式化/分区,就像在UEFI系统上进行Windows安装一样-GPT分区:EFI分区-FAT32, MSR分区,主分区-NTFS。使用/Unmount-Wimdism /Apply-Image将Windows文件安装到创建的磁盘,并使用install.wim安装EFI文件
  6. 由于使用的是经过测试签名的驱动程序,因此需要调整EFI分区上的BCD文件:
  7. bcdboot
  1. 一旦完成,请使用以下参数启动QEMU:
  2. 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

  • ]

    • [[还要注意,即使在3.2 GHz的Intel Core i7-8700上,对32位ARM的完全仿真也非常慢,因此最好使用具有硬件加速KVM管理程序的现代ARM板(如Raspberry Pi 4)。

  • 32位Windows已被认为是旧版,最好将其转换为AArch64,又名Windows for ARM64。
  • © www.soinside.com 2019 - 2024. All rights reserved.