使用 KVM PCI 直通时,GTX 1080 的驱动程序无法在客户机上运行

使用 KVM PCI 直通时,GTX 1080 的驱动程序无法在客户机上运行

我相信我们在 GTX 1080(驱动程序)和 PCI 直通方面遇到了可能的错误。

我的主机是Ubuntu 14.04系统。我的客人是 Ubuntu 14.04/16.04 系统(两者都做同样的事情)。

我可以在来宾虚拟机内看到设备:

$ lspci -vnn | grep VGA
00:05.0 VGA compatible controller: NVIDIA Corporation Device 1b80 (rev a1)

我能够成功安装驱动程序(370.2,最新驱动程序)。它已安装,但未被识别nvidia-smi

$ nvidia-smi 
Unable to determine the device handle for GPU 0000:00:05.0: Unknown Error

查看时dmesg我看到以下错误消息

[29.535583] nvidia 0000:00:05.0: irq 45 for MSI/MSI-X
[29.577727] NVRM: RmInitAdapter failed! (0x23:0x56:458)
[29.577807] NVRM: rm_init_adapter failed for device bearing minor number 0

我可以将 GTX 1080 换成不同的卡(M4000,进行直通并在客户机上安装驱动程序)并且它可以工作。明天我将尝试使用另一张 Geforce 卡。

NVidia 论坛上的另一个人和我有同样的问题(但没有答案)。

有没有办法进一步调试这个?

答案1

我遇到了同样的问题,我在以下位置找到了答案https://www.evonide.com/non-root-gpu-passthrough-setup/。您需要添加-cpu host,kvm=off到 qemu 命令行。我正在使用 ganeti,因此以下解决了问题:

gnt-instance modify -H cpu_type="host\,kvm=off"

如果我理解正确的话,这个标志不会关闭来宾的 KVM 加速,而是通过-machine pc,accel=kvm.但它会关闭来宾的嵌套 KVM 加速(因此您将无法在来宾中运行 KVM 虚拟机)。

答案2

我不知道我是否能做出很多贡献,在我看来,nvidia 正在积极破坏 pci 直通尝试(您应该购买 Quadro 卡)。

x-pci-vendor-id=0x10DE,x-pci-device-id=0x11BA,x-pci-sub-vendor-id=0x10DE,x-pci-sub-device-id=0x0965尝试通过添加参数来伪造 pci 设备 ID -device vfio-pci,。这将使其假装成 Quadro K5000。

答案3

我为此奋斗了一段时间,如果 gpu 是你系统中唯一的一个,你需要安装 grub 和 linux 来让它独立。我用串行控制台启动我的机器,但关键部分是 video=efifb:off

GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200" GRUB_TERMINAL="控制台串行" GRUB_SERIAL_COMMAND="串行 --speed=115200 --unit=0 --word=8 --parity=no --stop=1" GRUB_CMDLINE_LINUX= “安静的启动视频 = eifb:关闭 intel_iommu = 上控制台 = ttyS0,115200”

https://unix.stackexchange.com/questions/328534/driver-for-gtx-1080-doesnt-work-on-guest-when-using-kvm-pci-passthrough

相关内容