标签 Emulator 下的文章

前置

针对于 PC 平台的模拟器,如果是基于 X86 架构的镜像,那么必须使用模拟器加速的技术才能运行。

PC 平台的两家 CPU 厂所需的虚拟机加速技术有所不同:

  • Intel 虚拟化技术(VT、VT-x 和 vmx)扩展
  • AMD 虚拟化(AMD-V 和 SVM)扩展

因为 x86 在 PC 平台上有良好的运行效果,但是需要相应的模拟器加速技术才能运行。据闻 Intel 应该是许久之前就已经支持了相应的虚拟化技术。而 AMD 的虚拟化技术貌似一直是老大难,没有解决。(牙膏厂还是有东西的)


直至去年(2018 年),Google & MS 团队合作后推出了兼容于 PC (x86) 平台的虚拟机加速技术,其中一个关键点是:Windows Hypervisor Platform。(喜极而泣😝)

为什么最近才提起这个旧闻呢...因为 AMD 的新 CPU 实在是太了(我入手了 3600),以及开源项目需要 Android TV 的模拟器支持(毕竟家境贫寒,勉强温饱),故而才真正面对这个问题。

开启 WHPX 技术,需要前置条件如下:

  • AMD 处理器:建议使用 AMD Ryzen 处理器。必须在计算机的 BIOS 设置中启用虚拟化或 SVM。
  • Android Studio 3.2 Beta 1 或更高版本(从 developer.android.com 下载)
  • Android 模拟器版本 27.3.8 或更高版本(使用 SDK Manager 下载)
  • Windows 10 April 2018 Update 或更高版本

开启步骤

依据官方的指南,开启的步骤看起来是相当简单的:

  1. 在 Windows 桌面上,右键点击 Windows 图标,然后选择应用程序和功能
  2. 相关设置下,点击程序和功能
  3. 点击打开或关闭 Windows 功能
  4. 选中 Windows Hypervisor Platform
  5. 点击确定
  6. 安装完成后,重启计算机。

简单吧,当然不可能这么简单。

BIOS 的 SVM

AMD 系列的主板应该不是默认开启 SVM 虚拟化技术支持。一般需要手动开启,所以需要你移步 BIOS 里开启 SVM。

打开或关闭 Windows 功能 没有 Windows Hypervisor Platform

我个人的系统版本是 Windows 10 Pro 1903(18362.388),在【打开或关闭 Windows 功能】的列表中只有 Hyper-V 选项,并没有“Windows Hypervisor Platform”。所以没有办法开启,真是令人沮丧。

在解决之前,我们先确认是否打开了 Windows Hypervisor Platform 功能,用管理员 PowerShell 运行如下指令:

Dism /online /Get-Features

如果不出意外,Windows Hypervisor Platform 这个应该是显示禁用:

功能名称 : HypervisorPlatform
状态 : 已禁用

接着运行下面的指令开启 Hyper-V 和 Windows Hypervisor Platform

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Get-WindowsOptionalFeature -FeatureName HypervisorPlatform -Online

键入 Y 以便部署全部内容。

部署完成后,直接重启电脑。

此时应该就可以运行虚拟机了。

在启用了 Credential Guard 或 Device Guard 的 Windows 10 主机上运行 Workstation 失败 (2146361)

Powershell 一行命令关闭核心隔离:

bcdedit /set hypervisorlaunchtype off

重启即可。


参见: