使用Esxi虚拟机win10系统中开启安卓模拟器 writeor的博客 wr的小窝喔~
  • 欢迎访问wr的小窝~,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站.
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧
  • 嘟嘟嘟嘟嘟嘟啦~~

使用Esxi虚拟机win10系统中开启安卓模拟器

未分类 writeor 10个月前 (07-18) 242次浏览 已收录 0个评论

当时的问题是我试了我其他的两张显卡,但都无法启动,最后在我的Tesla M40上成功启动了雷电9安卓模拟器。

需要开启嵌套虚拟化,但是在Esxi后台界面上点击无法同时进行显卡直通和传递虚拟化到虚拟机。

显卡直通和传递虚拟化功能到虚拟机,两者只能同时开启一种(在界面上点击的话)

可以手动修改虚拟机配置文件,增加两条代码,实现两者同时点击,但者类似与卡bug。

注意:在手动增加配置后,如果再在界面上修改其他配置,它会自动把我们在配置文件上写的代码删除掉。

进入系统后,在任务管理器中看到cpu开启了虚拟化才能正常启动安卓虚拟机

背景
笔者最近找到了手游的脚本,既然有自己的服务器,干嘛不试试在ESXI 6.7下跑?便开始了折腾之旅。

最开始是想在现有的Linux虚拟机上跑Android模拟器的。尝试了Genymotion,发现无法正常启动系统;用xdroid发现能跑应用,但没有开放root权限。遂放弃之。
开了新的Win10虚拟机,开启硬件虚拟化后,可以正常运行Android模拟器(雷电),但很卡顿,而且游戏打开黑屏,估计是虚拟机的显卡性能太弱。
使用Esxi虚拟机win10系统中开启安卓模拟器
正片
综上,我需要在WIN10虚拟机上直通一张显卡(闲鱼200多淘来的公版950),并开启嵌套虚拟化。

1. 准备Win10虚拟机
关于Win10系统选择:
我推荐不喜欢折腾的用Ltsc 2021版,相对稳定,但内存占用相对多,开机就约2G了。
喜欢折腾也可以用网上的简化版系统,确实内存占用很低(不到1g),但问题也不少,我遇到的有:网卡无法设置手动地址、任务管理器找不到显卡。所以,能折腾的可以多看几个系统。

2. 直通显卡
直通显卡有比较多教程了,这里不赘述,想看详情看参考链接的1和2。

在ESXI中设置显卡直通
SSH在ESXI编辑/etc/vmware/esx.conf 和 /etc/vmware/passthru.map 两个文件(后者不确定是否必须)
WIN10虚拟机添加参数(这一步并非必须,可以先不添加,若有问题再添加试试):
键 值 作用
hypervisor.cpuid.v0 FALSE NVIDIA显卡直通配置,否则驱动错误,代码43
WIN10虚拟机添加PCI设备。
到这里,先别急着重启ESXI或者打开WIn10。

3. 开启嵌套虚拟化并允许直通
正常情况下,打开硬件虚拟化并添加PCI直通设备,会无法启动虚拟机。提示:

启用了嵌套硬件辅助的虚拟化时无法添加pcie设备。

但不开硬件虚拟化,Android模拟器又无法运行,不直通显卡,模拟器又卡死,属于是死锁了,但其实这个限制是可以绕过去的。

方法一(稳定但麻烦)
找到Win10虚拟机的vmx文件并下载
使用Esxi虚拟机win10系统中开启安卓模拟器
在本地打开并添加以下两行:
vhv.enable = “TRUE”
vhv.allowPassthru = “TRUE”
1
2
上传回刚刚的目录,替代掉原文件。
为什么要替代文件,不能在web上配置呢?
因为vhv.enable = “TRUE”,在web端无法配置:在添加后在保存设置时,会自动去除。
再次打开设置,会发现这一项没有了。从而是无法应用到虚拟机的。
直接使用编辑文件,可以绕过这一限制。
甚至编辑文件后,打开编辑设置,也会把这一项消除。所以,配置好后,再文件编辑。

方法二(简单但可能有稳定性问题)
SSH在ESXI用编辑文件:vi /etc/vmawe/config,在末尾增加 vhv.enable=”TRUE”。从而开始全局的硬件虚拟化。
在所有有直通的虚拟机上(不仅是WIN10,因为上面这个配置是全局的)添加参数:
键 值 作用
vhv.allowPassthru TRUE 嵌套虚拟化下允许直通
确保所有有直通的虚拟机都添加上参数后重启ESXI,否则重启后无法启动虚拟机。
4. 切换显卡,解决Android模拟器无法启动问题
重启之后,WIN10虚拟机理应可以正常启动了。装上显卡驱动后,应该可以任务管理器上看到显卡信息了。
(可以去设备管理器确认一下,显卡是否正常运行,若出现43,可以尝试禁用设备后,再启用)

启动Android模拟器!但却卡在50%,或者提示OpenGL版本过低。无法进入模拟器。
原因是Android模拟器默认运行在虚拟显卡上,没有真正在独显上运行。
此时在显卡上外接一个显示器,并在那上面运行Android模拟器,是可以正常运行的。

禁用虚拟显卡
既然原因是虚拟显卡,那把它禁用不就可以了。
先在WIN10上配置好远程关机后。在WIN10虚拟机添加参数:

键 值 作用
svga.present FALSE 关闭ESXI默认提供的虚拟显卡
再次启动WIN10虚拟机,此时你会发现ESXI上看不到WIN10的画面了。
此时使用远程连接,此时,负载就都在显卡上了。运行Android模拟器也没问题了。

若你嫌外接一个显示器太麻烦,可以去某宝上买个几块钱的显卡假负载或者整一个虚拟显示器,来解决这个问题。

总结
要用SSH在ESXI中配置以下文件:
/etc/vmware/esx.conf
/etc/vmware/passthru.map
/etc/vmawe/config(可选)
1
2
3
WIN10虚拟机上需要配置参数:
键 值 作用
hypervisor.cpuid.v0 FALSE 非必须,若有问题,可以尝试添加
vhv.allowPassthru TRUE 嵌套虚拟化下允许直通
svga.present FALSE 关闭ESXI默认提供的虚拟显卡


wr的小窝 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:使用Esxi虚拟机win10系统中开启安卓模拟器
喜欢 (0)
[1528532472@qq.com]
分享 (0)

您必须 登录 才能发表评论!

wpChatIcon
wpChatIcon