Windows 8 如何模拟windowsrt

Windows 8 如何模拟windowsrt,windows-8,arm,emulation,windows-rt,Windows 8,Arm,Emulation,Windows Rt,出于开发目的,如何在模拟器中运行Windows RT(Windows 8的受限ARM版本)?这个问题包括两部分: 获取映像:是否存在安装映像(对于供应商,在MSDN中…)?我可以拍摄Surface RT磁盘的快照(如何拍摄?),还是可以从恢复数据中提取快照(我不知道恢复系统如何工作,但有一个功能可以在Surface上完全擦除并重新安装软件) 运行映像:我可以在什么上模拟它?我听说过QEMU,但它以速度慢著称。此外,程序必须模拟必要的硬件(Tegra-3) 没有办法在ARM上真正模拟Window

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

  • 获取映像:是否存在安装映像(对于供应商,在MSDN中…)?我可以拍摄Surface RT磁盘的快照(如何拍摄?),还是可以从恢复数据中提取快照(我不知道恢复系统如何工作,但有一个功能可以在Surface上完全擦除并重新安装软件)
  • 运行映像:我可以在什么上模拟它?我听说过QEMU,但它以速度慢著称。此外,程序必须模拟必要的硬件(Tegra-3)

    • 没有办法在ARM上真正模拟Windows RT环境。你有两个选择

      1) 去拿一块平板电脑

      2) 联系您当地的Microsoft技术传道者,查看他们是否有可用的loaner硬件


      此外,您当地的Microsoft Evangelist团队很可能正在举办Windows 8开发人员活动,他们可能手头有测试硬件供您试用。如果你在美国,你可以在上找到这些事件的列表。

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

      应采取的步骤:
    • 修补QEMU以报告可用的EL3信任区:-如果您正在使用Windows并且不想从源代码构建QEMU,您可以修补
      QEMU系统arm.exe
      :将此十六进制序列替换为NOPs
      4531C931D24C8D05BE515C004889F1E87AD82E00
      90909090
      -它将替换此部分:
    • 下载QEMU 32位ARM平台的Linaro固件,特别是15.12版本,它是最后一个在ARM上引导Windows而没有问题的版本:
    • 下载Windows RT 8.1的ESD映像,这些映像可从Microsoft公开获得。 你可以在这里找到下载链接 或者使用带有以下字符串的谷歌:
      9600.17053.winblue_refresh.141120-0031_woafre_client_coreram_O15_en-us-IR5_CCSA_WOAFRER_en-us_ESD_2F1E1EC773E39C4672F52B1F3A0AE7844FD837B23.ESD
    • 将ESD转换为ISO或仅使用ESD-decrypter-wimlib-8.7z将其解压缩:
    • 您将需要针对32位ARM平台编译的QEMU的VirtIO驱动程序,这里提供预编译的
      viostor.sys
      驱动程序-如果您自己在Visual Studio中构建驱动程序,请确保使用
      Inf2Cat/driver:C:\drivers\/os:8_ARM,6_3_ARM
      创建目录文件并对它们进行测试签名(所有
      .cat
      .sys
      文件);一旦驱动程序准备就绪,您可以使用
      dism/Mount wim
      +
      /Add Driver
      +
      /Unmount wim
      将它们滑入
      boot.wim
      install.wim
    • 如果您不想从ISO启动和安装,可以创建VHD/VHDX磁盘映像,并将其格式化/分区,方式与UEFI系统上的Windows安装相同-GPT分区:EFI分区-FAT32、MSR分区、主分区-NTFS。使用
      dism/Apply image
      install.wim
      安装Windows文件到创建的磁盘,以及安装EFI文件的
      bcdboot
    • 由于您使用的是测试签名驱动程序,因此需要调整EFI分区上的BCD文件:
    • 完成所有操作后,使用以下参数启动QEMU:
    • 笔记:
      • PCI MMIO区域存在已知问题,因此USB输入无法正常工作。您可以通过将
        -M virt
        替换为
        -M virt,highmem=false
        来解决此问题,但是使用此选项,Windows 8.1 RT将抛出BSOD,其中包含代码
        系统线程\u异常\u未处理

      • 众所周知,Windows 10 for ARM不会抛出这种BSOD代码,并且在QEMU中与
        -M virt,highmem=false
        配合得很好。您可以使用Google获得它:
        10.0.15035.0.rs2_release.170209-1535_armfre_client-enter\u volume\u en-us

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

      • 32位ARM的Windows已经被认为是传统的,最好切换到AArch64又名ARM64的Windows,请参阅


      也许有人可以为此创建一个
      windows rt
      标记?对不起,我指的是操作系统“windows rt”,而不是名为“WinRT”或“windows Runtime”的新API(位于
      windows Runtime
      之后)。将其更改回新标签。根据Wikipedia,与Windows 8的所有其他变体不同,Windows RT只能由用户作为参与OEM生产的设备上的预加载操作系统获得。您可以使用板载恢复工具创建恢复磁盘,然后尝试使用QEMU模拟操作系统,但不确定这有多困难o安装它。微软可能会有更多的窍门。或者,如果你反对
      windows rt
      ,我们可以使用
      windows arm
      标记。无论如何,我相信这个特别版本的windows 8需要一个标记,用于问题与x86 windows 8相比它的特性。但是…Windows Surface SDK可以做到吗?仿真,我想可以使用“最新”的uefi linaro而不是15.12吗?linaro下载链接中有一个qemu64文件夹,是qemu-system-aarch64还是Windows 10 ARM64?Biswapriyo我没有用linaro和Windows 10 ARM64测试qemu aarch64,所以不能确定。是的,qemu64目录正是为了实现这一点。
      set BCD=E:\EFI\Microsoft\Boot\BCD
      bcdedit /store %BCD% /set {globalsettings} testsigning on
      bcdedit /store %BCD% /set {globalsettings} nointegritychecks on
      
      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