我已经设法在 QEMU/KVM 中运行 virgl 3D 加速,现在我想看看我是否可以在多个显示器上运行它。但是,当我向视频设备添加更多头时,无论我如何设置,显示器 1 都会镜像到其他显示器上,而不是扩展。有人知道如何让它工作吗?我无法进行 GPU 直通,因为我的 CPU 没有集成显卡,而且我没有空间或预算来安装另一个 GPU。
主机
操作系统 | 拱 |
---|---|
桌面 | 桌面环境 |
显示服务器 | x11 |
中央处理器 | AMD 锐龙 7 5800X3D |
图形处理器 | NVIDIA GeForce RTX 4090 |
内存 | 64GB |
客机
操作系统 | 大Linux |
---|---|
桌面 | 桌面环境 |
显示服务器 | x11 |
我如何让 virgl 与 NVIDIA 合作
- 我通过 virt-manager 的向导正常设置了 VM。
- 我安装了 ISO,然后在已安装的系统上加载桌面后关闭了 VM。
- 在详细信息视图中,在 virt-manager 中启用 XML 编辑:
- 在
Video Virtio
I下启用3D加速。 - 在下,
Display Spice
我将其设置Listen type
为并且None
不OpenGL
选中。(我发现保留也可以,但是我遵循的教程和启用 OpenGL 时出现的警告都告诉我将其保留为,所以我保留了 )Listen type
Address
None
- 在
Overview
I 下切换到 XML 选项卡- 如果存在的话,我会
<gl/>
从现有设备中删除。<graphics/>
- 在现有
<graphics/>
设备下方我添加以下内容:
- 如果存在的话,我会
- 在
<graphics type="egl-headless">
<gl rendernode="/dev/dri/renderD128"/>
</graphics>
现在,当我启动虚拟机时,我打开 Lutris 并在“首选项”下检查硬件信息,它显示 virgl 正在运行并列出了我的 GPU。
我为虚拟机添加了更多显示器
- 按照上述步骤启用 virgl 后,我关闭了虚拟机。
- 我转到“详细信息”,在
Video Virtio
“XML”选项卡下将heads
值更改为3
,因为我想要 3 个显示。 - 将虚拟机启动到桌面后,我
virt-viewer -a
在主机上输入终端以在连接模式下启动它。(Listen type
设置为后,Address
我可以选择正常启动它或改用远程查看器) - 为了初始化额外的显示器,从第一个显示窗口(应该初始化)我选中并取消选中其中一个附加显示器。
有关这些步骤结果的奇怪细节
显示器自动排列在侧面,但我看到的是其他显示器上显示器 1 的不完美镜像 - 其他显示器似乎只有在发生变化时才会更新,而且并非总是如此。尽管显示显示器 1,但其他显示器至少表现得像我希望的那样,位于显示内容的后面;我可以通过在主机上将显示窗口彼此相邻排列、在客户机上的显示器之间拖动窗口,然后拖动标题栏在额外显示器上的位置来测试这一点。