首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何仿真Windows RT

如何仿真Windows RT
EN

Stack Overflow用户
提问于 2012-11-19 13:30:34
回答 2查看 7.6K关注 0票数 10

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

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

回答 2

Stack Overflow用户

发布于 2020-05-13 15:03:08

我知道这个问题是9年前提出的,但是现在可以在修补好的QEMU6.2.0中模拟Windows,您也可以对它所做的工作进行阅读更多

带有下载的回购程序在这里:https://github.com/binarymaster/qemu/releases

请注意,没有音频,没有网络,没有GPU加速支持。尽管您可以与Windows 10 ARM进行网络连接,但只需阅读下面的答案即可。

答案从2020年5月13日开始:

我知道这个问题是7年前提出的,但是现在可以在最新的QEMU4.2.0中模仿Windows了。

应采取以下步骤:

  1. 补丁QEMU报告EL3 TrustZone available:https://github.com/TeoIzAwezome/rtemu/commit/0f8b8ec18725cd0f66a39b5520fb6a435a757f95 -如果您使用的是https://github.com/TeoIzAwezome/rtemu/commit/0f8b8ec18725cd0f66a39b5520fb6a435a757f95,并且不想从源代码构建QEMU,您可以修补qemu-system-arm.exe:用NOPs 4531C931D24C8D05BE515C004889F1E87AD82E00 => 9090909090909090909090909090909090909090替换这个十六进制序列-它替换以下部分:

  1. 下载用于QEMU 32位ARM平台的Linaro固件,特别是15.12版本,这是最后一个无问题引导Windows的版本:EFI.fd
  2. 下载WindowsRT8.1的ESD映像,这些映像可从Microsoft公开获得。您可以在这里找到下载链接,https://tech.myonlylonely.com/wimboot-for-surface-2-en/或使用Google使用以下字符串:9600.17053.winblue_refresh.141120-0031_woafre_client_CoreARM_O15_en-us-IR5_CCSA_WOAFRER_EN-US_ESD_2F1E1C773E39C4672F52B1F3A0AE7844FD837B23.esd
  3. 要么将ESD转换为ISO,要么直接用esd-decrypter-wimlib-8.7zhttps://www.tenforums.com/software-apps/27180-windows-10-recovery-tools-bootable-rescue-disk-2.html提取它。
  4. 您需要为32位ARM平台编译QEMU的VirtIO驱动程序,预编译的viostor.sys驱动程序在这里可用https://www.betaarchive.com/forum/viewtopic.php?f=62&t=40522如果您自己在Visual中构建了驱动程序,确保使用Inf2Cat /driver:C:\Drivers\ /os:8_ARM,6_3_ARM创建目录文件并对它们进行测试签名(所有.cat.sys文件);一旦驱动程序就绪,您可以使用dism /Mount-Wim + /Add-Driver + /Unmount-Wim将它们拖入boot.wiminstall.wim中。
  5. 如果您不想从ISO启动和安装,您可以创建VHD/VHDX磁盘映像和格式化/分区,就像在UEFI系统上安装Windows一样- GPT分区: EFI分区- FAT32、MSR分区、主分区- NTFS。使用dism /Apply-Imageinstall.wim安装install.wim文件到创建的磁盘,使用bcdboot安装EFI文件
  6. 由于您使用的是经过测试签名的驱动程序,所以需要调整EFI分区上的BCD文件:
代码语言:javascript
复制
set BCD=E:\EFI\Microsoft\Boot\BCD
bcdedit /store %BCD% /set {globalsettings} testsigning on
bcdedit /store %BCD% /set {globalsettings} nointegritychecks on
  1. 完成所有操作后,使用以下参数启动QEMU:
代码语言:javascript
复制
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

备注:

  • PCI区域存在已知的问题,因此USB输入无法工作。您可以通过将-M virt替换为-M virt,highmem=false来解决这一问题,但是使用此选项,Windows8.1RT将使用代码SYSTEM_THREAD_EXCEPTION_NOT_HANDLED抛出BSOD。
  • 众所周知,Windows10forARM不会抛出这个BSOD代码,并且在QEMU中与-M virt,highmem=false很好地工作。您可以使用Google获得它:10.0.15035.0.rs2_release.170209-1535_armfre_client-enterprise_volume_en-us

  • 还要注意的是,32位ARM的完全仿真速度非常慢,即使在Intel Corei7-8700@ 3.2 GHz上也是如此,所以最好使用一些现代的ARM板,比如Raspberry 4,它具有硬件加速的KVM管理程序。
  • 用于32位ARM的Windows已经被认为是遗留的,最好切换到AArch64 --也就是ARM64的Windows --参见https://withinrafael.com/2018/02/12/boot-arm64-builds-of-windows-10-in-qemu/
票数 5
EN

Stack Overflow用户

发布于 2012-12-04 14:47:10

没有办法真正模仿Windows在手臂上的功能。你有两个选择..。

1)去给自己拿一块表面药片。

2)与您的本地Microsoft技术布道师联系,了解他们是否有可用的借来的硬件。

此外,您的本地Microsoft布道者团队很可能正在举办Windows 8开发人员活动,他们可能手头上有测试硬件供您尝试。如果你在美国,你可以在http://msdnevents.com找到这些事件的列表。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13454841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档