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

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

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

我尝试了以下方法:将 GPU 驱动程序列入黑名单,禁用帧缓冲区

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

系统规格:

  • 处理器:锐龙 9 3900x
  • 主板:华硕 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 传递到运行 Windows 10 的三个不同的 VM。

我尝试过很多不同的指南和技巧来让这个方法奏效,但不幸的是我记不住所有的方法。在我的情况下,让这个方法奏效的简短版本是:

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

我现在对我的设置非常满意。我可以通过一些脚本在不同的虚拟机之间交换 GPU,而无需重新启动主机。为了让虚拟机之间的 GPU 交换 100% 正常工作,我还需要修复一些小问题,但总体而言,性能非常好。

相关内容