Til*_*den 5 kvm qemu opengl windows-10
我正在尝试在 Windows 10 VM(Ubuntu 18.04、QEMU 3.1.0)上安装 Sketchup 2019,但是 Sketchup 需要 OpenGL 3.1 或更高版本才能运行。我之前问过一个类似的问题,希望通过 Virgl 启用 3D 加速会起作用,但是即使我能够在主机上启用 Virgl 并且可以选择使用 Virtio 选择 3D 加速,OpenGL 仍然不在我的 Windows VM 上。然后我通过了一个 MSI GeForce GT 710 Nvidia GPU,它可以工作并显示在 VM 上,但是 OpenGL 仍然不存在,Sketchup 也不会运行。
似乎 Windows 来宾驱动程序根本不存在,几年前我曾看到过 Nathan Gauër 正在为此开发驱动程序的讨论,但不确定是否有任何事情通过这种方式或其他方式让 OpenGL 工作在 QEMU KVM 中的 Windows VM 上。如果有人知道是否有任何正常运行的 Windows 来宾驱动程序,或者让 OpenGL 工作的方法,或者让 Sketchup 在这种环境中运行的任何其他方法,我很乐意提供见解!
我上一篇关于在 18.04上启用 Virgl在 qemu 2.11 中为 Windows 10 VM 启用硬件加速的帖子
Wiki对显然无法正常工作的 Windows 来宾驱动程序提供最少的信息。
小智 12
完全归功于 Thomas Schwery 的这篇文章。您可以按照那里的说明进行操作,但我将在下面进行总结。这应该会让您在 Windows 10 来宾 VM 上运行更新版本的 OpenGL(对我来说是 3.1)。OpenGL 1.1 实际上已经在运行,但由于它太旧了,我尝试运行的应用程序无法识别它。
对于我的设置,我使用 libvirt/KMV/QEMU 运行带有 Gentoo Linux 主机的 Windows 10 客户机。以下是我为使其发挥作用而采取的步骤:
在https://github.com/pal1000/mesa-dist-win/releases下载已编译的 Mesa3D 源代码发行版
提取并systemwidedeploy.cmd在命令提示符下运行。
你应该看到这样的东西:
-------------------------------------
Mesa3D system-wide deployment utility
-------------------------------------
Please make a deployment choice:
1. Core desktop OpenGL drivers
2. Core desktop OpenGL drivers + Intel swr
3. Install DirectX IL for redistribution only
4. Microsoft OpenGL over D3D12 driver only (replaces Mesa core desktop OpenGL drivers)
5. Mesa3D off-screen render driver gallium version (osmesa gallium)
7. Mesa3D graw test framework
8. Update system-wide deployment
9. Remove system-wide deployments (uninstall)
10. Exit
Enter choice:
Run Code Online (Sandbox Code Playgroud)
1. Core desktop OpenGL drivers就是这样。
您可以GPU Caps Viewer从此处进行确认。

目前 Qemu 中的 Windows 客户机中没有像 OpenGL 这样的东西。相反的谣言常常源于QXL配置中的遗忘,再加上性能安慰剂效应1。OpenGL 确实作为菜单项出现在 中virt-manager,但它仅适用于virtio-gpuLinux 客户机中的驱动程序。
KVM、Qemu 和virt-managerdon\xe2\x80\x99t 具有可以向 Windows 10 客户机提供 OpenGL 的工作功能。virtioGPU 无法在 Windows 上正常工作,并且似乎仅限于向后兼容的 VGA 模式(约 2 fps 和 800 xc3 x97600)。
(QXL另一方面,工作得相当好(尽管没有 3D 加速),并提供自动分辨率更改,并且在有足够的视频 RAM 的情况下,还提供 HighDPI 分辨率。)
此 ArchWiki 部分包含当前状态的摘要以及实现virtioGPU 实验性 Windows 驱动程序的项目的链接。不幸的是,这些项目要么被放弃,要么处于早期研究阶段。
也就是说,唯一有效的建议是等待或为正在进行的项目之一做出贡献。
\n1用户有时可能认为自己观察到了软件属性(通常与性能相关),但实际上并不存在。这是一个已知的现象,过去甚至出现过 \xe2\x80\x9csuccessful\xe2\x80\x9d安慰剂软件。
\n感谢克里斯蒂安的反馈。我确实尝试将 SPICE 与 GL 一起使用,但在尝试启动启用它的虚拟机时不断出现错误,并且还没有进入那个兔子洞。我已经通过该 GPU 到达我的虚拟机,无论我尝试做什么,更新 Windows 或驱动程序,尝试通过 virt-manager 删除其他显示器和视频(似乎无法全部删除),OpenGL 都没有显示为已安装。也许如果我从 virsh xml 文件中删除了显示和视频,它就会起作用,但我决定从头开始并最终让它起作用,所以如果将来有其他人遇到这种情况,我将采取以下步骤。
先决条件
带 QEMU 的 Ubuntu 18.04(我有 3.1.0,可能与 2.11 或其他版本类似)。Nvidia 卡需要几个步骤,不确定 AMD 需要什么。 本指南是我主要模仿的内容,以使一切正常运行,包括下面的步骤。 这是另一篇关于 Nvidia 卡设置的类似信息。
需要注意的是,当我第一次物理添加 GPU 时,我无法再通过网络(无头)访问我的机器,因为添加 GPU 改变了网络接口,从而破坏了我的网络规划。本来可以连接显示器,但我的 MB 上有一个 IPMI 端口,因此以这种方式连接并获得新的网络接口来更新网络规划。
然后
在 virt-manager 中创建 Windows 10 VM - 最后选择高级选项
在选项中 - 使用 OVMF BIOS 和 Q35 芯片组。SeaBIOS 不起作用,必须“sudo apt install ovmf”。OVMF不能使用IDE驱动器,所以改成SATA启动(SCSI也不行),后来做了Virtio。
在选项中 - 删除所有显示和视频设备
在选项中 - 通过 GPU 视频的 PCI 设备(显示器直接连接到 Nvidia 显卡)和音频(仅视频失败)
在选项中-通过USB键盘/鼠标(因为为了安全删除了所有显示和视频选项,无法远程交互)
启动 VM 并加载 Windows 10 - 第一次启动时,它直接进入 UEFI shell,我必须退出该 shell,然后进入 BIOS,在那里我可以转到启动菜单并选择我作为附加的 Win10 iso通过 SATA 进行启动的 CD。
加载 Windows 并关闭虚拟机后,我根据上述指南编辑了 XML,以确保 GPU 没有出现 Code 43 错误(特别是在注明的位置添加 3 行 - “vendor_id state='on '值='1234567890ab'/"、"隐藏状态='on'/"和"ioapic 驱动程序='kvm'/")。
加载Virtio驱动程序和实用程序
加载最新的 Nvidia 驱动程序
检查OpenGL,它终于出现了。
安装了Sketchup,运行得很好。
我通常对 Windows 虚拟机使用远程桌面,但我仍然想尝试能够从 virt-manager 连接,因此在一切正常后,我确实返回并向虚拟机添加了 VNC 显示器和 Virtio 视频,这样我就可以通过virt-manager等进行连接和交互。这似乎只有在 Nvidia 显示器物理断开连接的情况下才有效,否则我会收到“访客尚未初始化显示器(尚未)”的消息,我确信有解决方案,但我不打算连接显示器无论如何,我还没有调查过这一点。
感谢您在这里的输入和我之前的帖子克里斯蒂安,我将在旧帖子中添加一个简短的注释,并在此处链接,因为它们是相关的。
| 归档时间: |
|
| 查看次数: |
18226 次 |
| 最近记录: |