如何在 Linux 中启用 KVM 设备直通?

如何在 Linux 中启用 KVM 设备直通?

我有一块 MSI-GD65 游戏主板和一台 Intel i7 4790。VT-D 在 BIOS 的 CPU 功能部分启用。

我正在运行 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
] IOAPIC id 8 在 DRHD 基础 0xfed91000 IOMMU 1 下

有人能告诉我该怎么做才能在此系统上启用 VT-D 并将 PCI 设备传递到 KVM 客户机吗?

答案1

解决此问题的方法是在 GRUB 启动参数中启用 IOMMU。

您可以通过在 /etc/default/grub 中设置以下内容来实现

GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on"

如果你使用的是 AMD 处理器,则应将其附加amd_iommu=on到启动参数中

GRUB_CMDLINE_LINUX_DEFAULT="安静启动 amd_iommu=on"

然后运行update-grub并重启

这个链接对我有很大帮助:https://www.centos.org/forums/viewtopic.php?f=47&t=48115

也可以看看:https://pve.proxmox.com/wiki/Pci_passthrough

这让我有些困惑,因为我相信 iommu 是 AMD 的 VT-D 替代品。

答案2

补充 Anonymouslemming 的回答:Ubuntu(对我来说是 18.04)中似乎有一个错误,导致 /etc/default/grub 中 GRUB_CMDLINE_LINUX_DEFAULT 的设置被忽略。

可以通过注释掉 /etc/default/grub.d/50-curtin-settings.cfg 中的 GRUB_CMDLINE_LINUX_DEFAULT 来修复此问题

https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1569567

答案3

您似乎有硬件要求,因为另一个模块正在使用它(IOAPIC)在这种情况下,您只需简单地设置软件端。

看来您需要确保安装了所有先决条件,以支持分离相应的设备。听起来您没有安装它们,或者它们没有设置。

在这种情况下,您需要先安装并初始化适当的库和内核模块,然后才能尝试使用它们。这些将是您的 KVM 设置的各种“主机”系统实用程序和内核模块。

您需要阅读手册中有关如何正确设置适当的 KVM 解决方案的部分,并按照这些步骤操作,然后再尝试运行这些实用程序。它们不会在首次启动时简单地设置,只是因为安装了必要的软件包。

请注意,如果所讨论的设备嵌入在主板中,那么从技术上讲它可能不是 PCI 设备,而是 PCI 映射设备。这些设备实际上是通过其他方式连接的,但使用其 BIOS 映射到 PCI BIOS 空间。它们可能兼容也可能不兼容设备分离,具体取决于它们连接到系统的各个方面。

此外,如果子设备的驱动程序相互依赖,则可能无法在不分离父设备的情况下分离子设备。只有在绝对确定父设备是 PCI 控制器、PCI 桥接器或其他受支持的总线控制器或桥接器的情况下,才能分离设备

答案4

我在 centos7 上

我有这个错误导致我来到这里,但我的问题不是更新(在我的情况下)vim /etc/sysconfig/grub并添加intel_iommu=on到行尾GRUB_CMDLINE_LINUX

我必须运行这个命令

grub2-mkconfig -o /boot/grub2/grub.cfg

然后重新启动

注意:我在运行上述命令之前也确实运行了 grub2-mkconfig 并重新启动,但从我看到的结果来看,这对我来说没有任何作用。

参考:https://bugzilla.redhat.com/show_bug.cgi?id=1269446

评论 11 和 12

相关内容