Qemu Libvirt:无法将所有 GPU 传递到虚拟机

Qemu Libvirt:无法将所有 GPU 传递到虚拟机

我试图将所有 gpu 传递到不同的系统,我的设置:

  • 华硕 x399 游戏 6 主板
  • amd 1950x
  • 32G内存
  • 1 TB 英特尔 SSD M.2
  • gtx970
  • GT750

这些资源应该传递到 3 个系统:

  • vm1 是搭载 GTX 970 的 Windows 10 VM
  • vm2 是带有 gtx 750 的 Ubuntu VM(如果 vm3 正在运行则无法运行)
  • vm3 是带有 gtx 750 的 Ubuntu VM(如果 vm2 正在运行则无法运行)

但使用 grub cmd 行启动:

GRUB_CMDLINE_LINUX_DEFAULT="nomodeset amd_iommu=on iommu=pt vfio-pci.ids=10de:13c2,10de:0fbb,10de:1381,10de:0fbc"

确实会导致 ubuntu 服务器和客户系统访问 gtx 750 的状态,我尝试禁用 tty 以阻止访问,但现在带有 gtx 750 的客户机无法通过启动徽标

我是否错过了主机访问 gtx750 的某个点?我搜索了几次,想找到一个与我匹配的设置,或者与我的目标匹配的设置,但从未找到完整的解决方案。如果你需要任何配置,我会尽快提供

编辑#1 我对此做了更多工作,并尝试使用额外的 GPU(gtx650ti),遗憾的是这张卡有缺陷。我做了一些重新绑定和解除绑定,并尝试解除 EFI 帧缓冲区的绑定。但我能做到的最好努力是,我可以决定使用哪个 GPU 启动什么,但一次只能启动一个 VM。

如果我启动多个使用 GPU 的 VM,系统就会冻结。

编辑#2 经过一些修修补补,现在坏掉的卡可以当假的了,我可以用 gpu 直通启动 2 个虚拟机,正如评论中提到的,我会尝试完全禁用 gpu 启动,并尝试是否可以让内核用串行 vty 启动

编辑#3 我目前正在使用 gtx750 显示内置菜单,以便轻松启动和停止 vm。我正在努力让 ubuntu 在没有实际串行端口的情况下启动。我试图使用 usb 端口作为串行端口(应该不难)。但 ubuntu 拒绝启动。我会尝试获取一个像 rpi-zero 这样的虚拟设备作为 usb 串行主机,并将所有 io 重定向到屏幕或类似设备。如果我尝试在插入 gpu 的情况下启动,系统会直接抓取 gpu 并进行正常启动。

相关内容