免责声明:对 Linux 来说还很陌生
相关系统规格:
Motherboard: MSI B450 Tomahawk Max
CPU: AMD Ryzen 9 3950X (no iGPU)
PCIe slot 0: Nvidia 2070 Super (1x monitor connected)
PCIe slot 1: AMD RX 550X (2x monitor connected)
OS: Ubuntu 20.04.2 LTS
我正在跟进新手指南关于如何设置带有直通 GPU 的 Windows 虚拟机来玩游戏,使用 xubuntu 作为虚拟机管理程序,而不是指南中使用的 Debian。隔离 Nvidia GPU 的所有步骤都很好,但当我实际使用 vfio 隔离 GPU 时,我的 AMD GPU 似乎被禁用或至少没有使用,并且所有显示器上都出现(亮起但)黑屏。要让屏幕再次显示,我必须在 BIOS 设置中禁用 IOMMU,然后我可以禁用 vfio 并重新启用 IOMMU。
我尝试更换显卡,但由于某种原因,ACS 搞乱了,导致每个 GPU 无法正确隔离,所以无法做到这一点。
我尝试按照以下答案进行操作这个类似的问题但是,当我生成 xorg 配置时,我最终得到了三个单独的 GPU 部分,每个部分分配给每个连接的屏幕。此外,AMD GPU 位于顶部,这将使它们在我的逻辑中具有优先级。
Section "Device"
Identifier "Card0"
Driver "amdgpu"
BusID "PCI:37:0:0"
EndSection
Section "Device"
Identifier "Card1"
Driver "amdgpu"
BusID "PCI:37:0:1"
EndSection
Section "Device"
Identifier "Card2"
Driver "nouveau"
BusID "PCI:38:0:0"
EndSection
我愚蠢地尝试删除卡 2 及其连接的显示器,结果导致我的系统崩溃并迫使我重新安装。
由于我对 Linux 还很陌生,这是我第一次深入研究 xorg.conf,所以现在我很困惑。如何将操作系统使用的默认 GPU 从插槽 0 更改为插槽 1?
相关,的输出lspci -nn | grep vga
是
25:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Lexa PRO [Radeon 540/540X/550/550X / RX 540X/550/550X] [1002:699f] (rev c7)
26:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU104 [GeForce RTX 2070 SUPER] [10de:1e84] (rev a1)
并find /sys/kernel/iommu_groups/ -type l
确认该 GPU 是其 IOMMU 组中唯一的 GPU。
第一次提问,如果我遗漏了什么或犯了什么错误,请告诉我。抱歉我理解能力不足,请随意向我解释,就像我 5 岁一样。
答案1
我同意之前关于不混合使用 Nvidia 和 AMD 显卡的回答。但对于你最初的问题,在启动期间连接显示器的 GPU 将被选为默认 GPU。因此,一个不太优雅但简单的解决方案是断开显示器与你想要作为辅助显卡的显卡的连接。你可以在启动后重新连接它,它将保持辅助显卡状态。