无法在三重 GPU 设置中通过主 GPU。Ubuntu 在启动时挂起

And*_*eas 6 boot gpu

我最近构建了一个带有 3 个 GPU 的系统。我试图通过两个 GPU 以在 vm 中使用它们,并将第三个用作主机 GPU。我已经成功地通过了在 Windows 10 虚拟机中完全工作的第二个插槽 GPU。所有 GPU 都在新安装的 Ubuntu 18.04 上工作并显示图片。尝试通过第一个 PCI-E 插槽中的主 GPU 时出现我的问题。这样做时,Ubuntu 会在应该加载图形驱动程序之前冻结/无法启动。

我尝试了以下操作:列入黑名单的 gpu 驱动程序,禁用帧缓冲区

其他注意事项:我的 IOMMU 组已正确分隔,主板似乎无法在 Bios 中设置主 GPU

系统规格:

  • CPU:锐龙 9 3900x
  • 主板:Asus Prime x570 Pro
  • GPU1:Nvidia GTX 970 (PCI-E 1)
  • GPU2:Nvidia GTX 780 (PCI-E 2)
  • GPU3:Nvidia GT 9600 (PCI-E/PCH 3)

TL:DR 在我看来,在加载驱动程序之前,我似乎需要能够在引导过程中将主 GPU 从 GPU1 切换到 GPU3。当 BIOS 中没有这样做的选项时,我该怎么做?

我一直在使用的指南:https : //mathiashueber.com/windows-virtual-machine-gpu-passthrough-ubuntu/ https://www.reddit.com/r/homelab/comments/b5xpua/the_ultimate_beginners_guide_to_gpu_passthrough/


编辑:

经过无数个小时和不眠之夜,我改用无头 Ubuntu Server 18.04。我将第三个 GPU 9600 GT 更改为 RTX 2070。我现在能够同时将所有三个 GPU 传递到三个不同的 VM 运行 Windows 10。

我尝试了很多不同的指南和技巧来让它发挥作用,不幸的是我无法记住它们。在我的情况下让这个工作的简短版本:

  • 未安装 GUI 的 Ubuntu 服务器 18.04 Headless。
  • 内核 4.15 或更高版本
  • QEMU 2.11
  • 如果您运行 UEFI,则需要使用名为 OVMF_CODE.FD 的 bios 启动 Windows 10 VM
  • 如果您运行 UEFI,GPU 必须在 GPU Bios 中支持它。对于 Nvidia,这通常是 GTX 700 系列或更新版本,但也有一些例外。
  • 在启动 VM 之前,GPU 必须与默认的 Nouveau 驱动程序解除绑定并绑定到 VFIO 驱动程序
  • 启动主机时,您的 GPU 之一将被设置为系统主 GPU(即使是无头的)。这通常是第一个 PCI-E 插槽中的 GPU,但可能因主板中的 BIOS 设置而异。就我而言,它是第一个插槽,无法更改。如果您想通过此 GPU,您首先需要将 GPU 重新安装到不同的 PCI-E 插槽中,并在第一个插槽中使用另一个作为主 GPU。然后,您可以将此 GPU 的 Bios 转储到文件中,并将其交换回插槽 1 中的主 GPU。必须将此 Bios 提供给将使用主 GPU 的 VM。
  • 当所有 GPU 都通过时,使用远程 SSH 通过终端控制主机

我现在对我的设置非常满意。我可以在不同 VM 之间交换 GPU,而无需通过某些脚本重新启动主机。我仍然需要解决一些小问题,以使 VM 之间的 GPU 交换能够 100% 工作,但总体性能非常好。