分享

Hyper虚拟机尝试打游戏

 _明心见性_ 2022-11-04 发布于新疆
  • 更新

    1
    2
    3
    2021.01.27 初始
    2022.01.18 更新.并重写大部分内容
    2022.08.22 更新部分串流内容

导语

尝试是配置一个能打游戏的 win10 虚拟机.哪里知道,此乃又一大坑.

(22.0.18) 偶然间翻到了 Nvidia tried so hard to stop this ltt 这期 gpu 虚拟化的视频,随重新进行配置,结果很满意.

先说结果吧

  • (22.01.18) 目前可以完全正常玩游戏,包括 fps 游戏.
  • 借助 gpu 虚拟化,可以非常好的调用 GPU.

(22.08.22) 更新串流的坑

方案

hyper-v 虚拟机运行大型游戏,问题:

  • GPU 性能.首要的瓶颈,gpu 虚拟化可比 cpu 成熟度差太多了.
  • 远程桌面非游戏优化.win10 的 rdp 是针对文字等优化,并非游戏.

解决:

  • win10 的 GPU Paravirtualization(半虚拟化) 可解 gpu 性能问题.
  • 非 fps 类,rdp 足矣,其他均 -> 找 Parsec

部署

懒人方案 Easy-GPU-PV

  • 全自动安装 win11 虚拟机 + Parsec
  • 要求:
    • win 10 20h1 以上及 win11 专业版/企业版/教育版(支持 hyper-v 的版本)
    • NVIDIA/AMD 显卡的 pc 机, N卡的笔记本暂时不受支持(未验证).

半懒人: 自行安装虚拟机 + gpu-pv-ps1 脚本设置

  • win11 毕竟占用比 win10 ltsc 要大,并不适合直装虚拟机.
  • 脚本默认设置一般足矣,除非虚拟机识别有问题,才需要全手动设置.
  • 笔记本 A/N 卡,脚本应该也通用,但是在我的机器上遇到了 代码 43 等其他 bug,只能手动调整配置.

全手动: 自行配置虚拟机,因为排 bug

最终个人因为排 bug 选择全手动

  • 虚拟机 win10 ltsc 2021,基于 win10 21h2 精简.
  • 宿主机 win11 没有遇到什么 bug.

Note: 配置 gpu 半虚拟化后,不能再使用检查点.

配置

配置流程

  • 安装 hyper-v 虚拟机
  • 配置 GPU-PV
  • 拷贝宿主机驱动(可选,看有消息说不需要这一步,但是个人的笔记本上还是需要拷贝驱动)

安装 hyper-v 过程不再提及.

GPU-PV 配置

要求:

  • 理论上,win10 1809 以上都支持这个功能,但是最新的系统有最好的兼容性.
  • host 和 vm 可以是不同的系统,但是可能有兼容性问题.
  • 因此这里 host 是 win11,vm 也选择 win10 ltsc 2021,保证兼容性.

配置:

  • 管理员权限运行 powershell

  • 依次运行下面的命令

    1
    2
    3
    4
    5
    6
    $vm = "vm_name"
    Add-VMGpuPartitionAdapter -VMName $vm
    Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionVRAM 80000000 -MaxPartitionVRAM 100000000 -OptimalPartitionVRAM 100000000 -MinPartitionEncode 80000000 -MaxPartitionEncode 100000000 -OptimalPartitionEncode 100000000 -MinPartitionDecode 80000000 -MaxPartitionDecode 100000000 -OptimalPartitionDecode 100000000 -MinPartitionCompute 80000000 -MaxPartitionCompute 100000000 -OptimalPartitionCompute 100000000
    Set-VM -GuestControlledCacheTypes $true -VMName $vm
    Set-VM -LowMemoryMappedIoSpace 1GB -VMName $vm
    Set-VM -HighMemoryMappedIoSpace 8GB -VMName $vm
  • 上面的 LowMemoryMappedIoSpace 和 HighMemoryMappedIoSpace,原帖中是 1G 和 32G,这里测试 2060 配置 8G 也能正常跑起来.

  • 如果配置的内存不足可能在设备管理器出现 代码 43 错误,此时需要重新运行以上的命令.但是也可能是镜像本身问题.我这里是 ltsc 2019 和 20年的 20h2 镜像都出现了 代码 43 错误,即使增大到 32G 也是 代码 43.但是 21年的 20h2 镜像就完全没问题.

拷贝驱动

拷贝驱动

  • 找到 host 的驱动文件夹,拷贝到 vm.
  • 原帖中的是在 C:\Windows\System32\DriverStore\FileRepository\ 路径下的 nv_dispi.inf_amd64_<UNIQUEID> 文件夹,但是在 win10 更新后文件夹名有了变化.
  • win + r 运行 dxdiag 导出所有信息到文件,搜索显卡的型号,再下边一点就是驱动文件夹的路径.
  • 之后将驱动文件夹拷贝到 C:\Windows\System32\HostDriverStore\FileRepository 下,注意 host 和 vm 的路径不一致!!,文件夹不存在则创建.

最后重启 vm.查看设备管理器和 dxdiag,gpu 是不是已经正常识别了.

串流

配置完 GPU-PV 后,大概率在真正串流前,还需要

  • 虚拟声卡,防止串流没声音.
  • 虚拟显示器,不开 hyper-v 管理器直接串流,需要有个显示器才行,否则串流黑屏.

全流程请看 -> 创建远程游戏虚拟机全流程方案(GPU-PV)

  • 写的是真详细,这里仅补充中间遇到的坑.

虚拟声卡也可以找 -> vb-audio 亲测可用.

虚拟显示器原帖在这里 -> Activating a Secondary Display on Windows 10 when no Monitor is Connected ,驱动安装是 windows 认证过驱动,基本没有后门方面顾虑.

虚拟显示器添加任务计划,遇到两个坑.

  • 无法生效,即使在系统内直接执行,也无法添加虚拟显示器 -> 这多半是权限问题,在安全选项->运行任务时使用下列用户账户,选择 System 或 Administrators 即可.
  • 开机有概率不生效 -> 执行条件增加延时,一般 5~10s 就够了.

Parsec 登录错误代码 800,这个是被墙了,但是还分地区,分运营商.. -> Configure-App-Level-HTTP-Proxy 官方给的答案.

其他串流

毕竟 Parsec 是个中心化服务,有一定的隐私和安全顾虑,还有稳定性的担忧.

另外的串流方案

  • Steam Link: 这个不说了,用的基本最多的,但我一直遇到兼容性问题…
  • Moonlight: 后端基于 N 卡的 GameStream,需要安装 GeForce Experience,但在虚拟机一直是驱动错误,又开源的后端实现 sunshine 全平台.

如果是期望全开源实现: Moonlight + sunshine.

简单方便: Parsec

以上两种方案都可用稳定运行,只是配置复杂程度问题.

其他

hyper-v rdp 鼠标问题

直接在 rdp 玩 fps 游戏,一动鼠标立刻天旋地转..

参考Erratic mouse movement in 3D games over RDP with RemoteFX

这个锅应该是 rdp 的,rdp 处理鼠标移动又经过压缩传递到虚拟机,这中间出了问题.

有两种解决方式(我这里都失败了)

  • USB RemoteFX Passthrough,将鼠标直通给虚拟机.
  • usb over ip/network.

USB RemoteFX Passthrough

hyper-v 对 鼠标 的支持太烂了.

  • 需要先开启 RemoteFX 的 USB 重定向.
  • RemoteFX 又明确说了不支持鼠标,还需要配置注册表曲线救国.

开启RemoteFX 的 USB 重定向主要,参考下面 3 篇文献

我这里一直没有成功,有文献说 Intel(R) USB 3.0 eXtensible Host Controller Driver 与 USB RemoteFX Passthrough 有冲突需要卸载,但是我的 host 是 amd 平台,无解了.

之后配置注册表,开启鼠标支持参考下面两篇

usb over ip/network

将鼠标 over ip/netwrok 连接到虚拟机,不再受到 hyper-v 的限制..

查阅了几个商业软件授权价格..告辞…

usbip 是开源的且很久没有更新了,尝试成本比较高.

可用的基本是 usbip-win 这款了,但还处于开发早期,需要安装非签名驱动,还有不少 bug.

结语

完全正常的虚拟机游戏环境,登战网下 ow 一气呵成,阔别 1 年多的努巴尼我来了 !

  • 突闪实名认证未通过,自此下线…心累…咱老老实实等 ow2 转外服吧.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多