我相信我们遇到了 GTX 1080(驱动程序)和 PCI Passthrough 的可能错误。
我的主机是 Ubuntu 14.04 系统。我的来宾是 Ubuntu 14.04/16.04 系统(两者都做同样的事情)。
我可以在来宾 VM 中看到设备:
$ lspci -vnn | grep VGA
00:05.0 VGA compatible controller: NVIDIA Corporation Device 1b80 (rev a1)
Run Code Online (Sandbox Code Playgroud)
我能够成功安装驱动程序(370.2,最新驱动程序)。它安装,但不被识别nvidia-smi
:
$ nvidia-smi
Unable to determine the device handle for GPU 0000:00:05.0: Unknown Error
Run Code Online (Sandbox Code Playgroud)
查看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
Run Code Online (Sandbox Code Playgroud)
我可以将 GTX 1080 换成不同的卡(M4000,在来宾上执行直通和安装驱动程序)并且它可以工作。明天我将尝试使用另一张 Geforce 卡。
我使用的是 Debian 10.8 和 Linux 内核 4.19.0-14。
我正在尝试使用 IOMMU 传递整个 USB 控制器(PCI Express 卡),但遇到问题。内核正在加载 ohci_pci 和 ehci_pci 驱动程序,我似乎无法阻止它或取消绑定它们。
我尝试删除它们(echo 1 > /sys/bus/pci/devices/...),但它冻结了系统。(内核通过堆栈跟踪等显示内核 BUG)
因此,我试图阻止内核绑定 ohci 和 ehci 驱动程序,以便 VFIO 可以使用它们而无需先解除绑定。
我尝试了几件事:
我认为内核正在使用内置的 ohci/ehci 驱动程序(而不是模块),因此也许它会在 pci-stub 或 vfio 阻止之前加载这些驱动程序?
我想尝试 PCI 直通。我已将旧的捕获视频卡传递给 Windows XP 来宾。
IOMMU
已启用;
vfio_pci
已加载
我运行这个命令:
virsh nodedev-detach pci_0000_05_05_0
lspci -s 00:05 -v
Run Code Online (Sandbox Code Playgroud)
它报告vfio
正在“运行”PCI 设备,但是当我使用 PCI 设备启动 XP 时,它给了我这个错误:
Please ensure all devices within the iommu_group are bound to their vfio bus driver.
Run Code Online (Sandbox Code Playgroud)
我做错了什么?