在Ubuntu 19.10作为主机,我尝试将 GPU 直通到 Windows 10 来宾。我成功隔离了我的 GTX 1060 并将其传递到虚拟管理器 (libvirt 文档) (主页)。
当我尝试安装 Windows 时,它首先在安装过程中复制文件。然后它重新启动虚拟机,当 Windows 继续安装过程时,Ubuntu 永远冻结。我重新启动了 Ubuntu,再次尝试,结果还是在同一个地方发生同样的情况。
您可以在此处详细查看我为启用直通所做的所有操作:KVM GPU 直通:组 15 不可行。请确保 iommu_group 内的所有设备都已绑定到其 vfio 总线驱动程序。'
但简而言之:我编辑了/etc/initramfs-tools/modules
iommu组 15 中的所有 4 个 pci 设备。但是,当我在重新启动后运行时,/etc/modules
只有 GTX 1060 被使用。因此,我手动解除绑定并使用我编写的一个小脚本将它们插入 vfio-pci:vfio-pci
lspci -nnv
echo -n "0000:07:00.1" > /sys/bus/pci/drivers/snd_hda_intel/unbind
echo -n "0000:07:00.1" > /sys/bus/pci/drivers/vfio-pci/bind
echo -n "0000:07:00.2" > /sys/bus/pci/drivers/xhci_hcd/unbind
echo -n "0000:07:00.2" > /sys/bus/pci/drivers/vfio-pci/bind
echo -n "0000:07:00.3" > /sys/bus/pci/drivers/nvidia-gpu/unbind
echo -n "0000:07:00.3" > /sys/bus/pci/drivers/vfio-pci/bind
之后,我可以成功启动 Windows 10 VM 安装,但它在安装过程中冻结。这可能与我所做的事情有关吗?
PS:由于主机的 GPU 也是 NVIDIA 的,因此我无法简单地阻止 noveau 驱动程序。所以我需要手动解除每个设备的绑定。
答案1
您几乎肯定需要将 nouveau 和 nvidia 设备驱动程序列入黑名单,并设置一个启动脚本,执行上述与 vfio-pci 的绑定,然后明确加载 nouveau/nvidia 内核驱动程序,让它们绑定您之前在脚本中尚未明确绑定到 vfio-pci 的硬件设备。一旦主机端驱动程序污染了设备,该设备在大多数设置中往往不再适用于 pci 直通。