我有一个MSI-GD65游戏主板和一个Intel i7 4790.在BIOS的CPUfunction部分启用VT-D。
我正在运行Ubuntu 14.04.1 LTS,当我尝试分离设备时,出现以下消息:
#virsh nodedev-detach pci_0000_00_1f_2
错误:分离设备失败pci_0000_00_1f_2错误:不支持操作:此系统当前不支持VFIO和KVM设备分配
Dmesg包含了关于IOMMU的一些信息,但是我不知道这是否意味着VT-D已启用
$ dmesg | grep -i iommu
[0.027450] dmar:IOMMU 0:reg_base_addr fed90000 ver 1:0 cap c0000020660462 ecap f0101a
[0.027455] dmar:IOMMU 1:reg_base_addr fed91000 ver 1:0 cap d2008020660462 ecap f010da
[0.027521]在DRHD基址0xfed91000下的IOAPIC id 8 IOMMU 1
任何人都可以build议我需要做什么来启用此系统上的VT-D,并通过PCI设备传递给KVM客人吗?
解决此问题的方法是在GRUB引导参数中启用IOMMU。
您可以通过在/ etc / default / grub中设置以下内容来完成此操作
GRUB_CMDLINE_LINUX_DEFAULT = “intel_iommu = ON”
如果您使用的是AMD处理器,则应该将amd_iommu=on附加到引导参数上
GRUB_CMDLINE_LINUX_DEFAULT =“quiet splash amd_iommu = on”
然后运行update-grub并重启
这个链接对我有所帮助: https : //www.centos.org/forums/viewtopic.php?f=47&t=48115
另请参阅: https : //pve.proxmox.com/wiki/Pci_passthrough
由于我相信iommu是替代VT-D的AMD,这一点让我难以理解。
你似乎有硬件要求,因为另一个模块正在使用它(IOAPIC)在这种情况下,你只需要简单地设置软件结束。
看起来您需要确保已经安装了所有先决条件以支持相应设备的分离。 这听起来像你没有安装它们,或者他们没有设置。
在这种情况下,您需要安装并初始化相应的库和内核模块,然后再尝试使用它们。 这些将是您的KVM设置的各种“主机”系统实用程序和内核模块。
您需要阅读手册中关于如何适当地设置适当的KVM解决scheme的部分,并在尝试运行这些实用程序之前遵循这些步骤。 他们不仅仅是因为安装了必要的软件包而首次启动。
请注意,如果有问题的设备是embedded在主板上,那么在技术上可能不是PCI设备,而是PCI映射设备。 这些设备实际上是通过其他方式连接的,但是使用其BIOS来映射到PCI BIOS空间。 它们可能会或可能不会与设备分离兼容,取决于它们如何连接到系统的各个方面。
此外,如果不分离父设备,则可能无法分离子设备,如果它们的驱动程序是相互依赖的。 您只能以绝对确定的方式拆卸设备,其父设备是PCI控制器,PCI桥或其他支持的总线控制器或桥接器