英特尔 PCI-E 四端口卡直通

英特尔 PCI-E 四端口卡直通

抱歉,我问的问题可能有点蹩脚,但是我从 Linux 开始,所以请您多多包涵。

我已安装 Ryzen 2400G,Ubuntu 18.04 和 IOMMU 已打开。我添加了英特尔四端口千兆以太网,我想在 KVM 上的 pfsense 上使用它。

我看到了很多关于这个问题的帖子,但只适用于 VGA pci-e 卡,我无法让它与我的以太网卡一起工作。如果我理解了,我需要从驱动程序中解除硬件绑定并将其绑定到 KVM。但我不知道怎么做 :(

有关我的以太网控制器的信息:

    1d:00.0 Ethernet controller [0200]: Intel Corporation 82571EB Gigabit Ethernet Controller (Copper) [8086:10bc] (rev 06)
    Subsystem: IBM 82571EB Gigabit Ethernet Controller (Copper) (4-Port 10/100/1000 Base-TX PCI Express Adapter for POWER) [1014:0368]
    Flags: bus master, fast devsel, latency 0, IRQ 60
    Memory at fe6a0000 (32-bit, non-prefetchable) [size=128K]
    Memory at fe680000 (32-bit, non-prefetchable) [size=128K]
    I/O ports at d020 [disabled] [size=32]
    Expansion ROM at fe660000 [disabled] [size=128K]
    Capabilities: <access denied>
    Kernel driver in use: e1000e
    Kernel modules: e1000e

    1d:00.1 Ethernet controller [0200]: Intel Corporation 82571EB Gigabit Ethernet Controller (Copper) [8086:10bc] (rev 06)
    Subsystem: IBM 82571EB Gigabit Ethernet Controller (Copper) (4-Port 10/100/1000 Base-TX PCI Express Adapter for POWER) [1014:0368]
    Flags: bus master, fast devsel, latency 0, IRQ 64
    Memory at fe640000 (32-bit, non-prefetchable) [size=128K]
    Memory at fe620000 (32-bit, non-prefetchable) [size=128K]
    I/O ports at d000 [disabled] [size=32]
    Expansion ROM at fe600000 [disabled] [size=128K]
    Capabilities: <access denied>
    Kernel driver in use: e1000e
    Kernel modules: e1000e

    1e:00.0 Ethernet controller [0200]: Intel Corporation 82571EB Gigabit Ethernet Controller (Copper) [8086:10bc] (rev 06)
    Subsystem: IBM 82571EB Gigabit Ethernet Controller (Copper) (4-Port 10/100/1000 Base-TX PCI Express Adapter for POWER) [1014:0368]
    Flags: bus master, fast devsel, latency 0, IRQ 65
    Memory at fe5a0000 (32-bit, non-prefetchable) [size=128K]
    Memory at fe580000 (32-bit, non-prefetchable) [size=128K]
    I/O ports at c020 [disabled] [size=32]
    Expansion ROM at fe560000 [disabled] [size=128K]
    Capabilities: <access denied>
    Kernel driver in use: e1000e
    Kernel modules: e1000e

    1e:00.1 Ethernet controller [0200]: Intel Corporation 82571EB Gigabit Ethernet Controller (Copper) [8086:10bc] (rev 06)
    Subsystem: IBM 82571EB Gigabit Ethernet Controller (Copper) (4-Port 10/100/1000 Base-TX PCI Express Adapter for POWER) [1014:0368]
    Flags: bus master, fast devsel, latency 0, IRQ 66
    Memory at fe540000 (32-bit, non-prefetchable) [size=128K]
    Memory at fe520000 (32-bit, non-prefetchable) [size=128K]
    I/O ports at c000 [disabled] [size=32]
    Expansion ROM at fe500000 [disabled] [size=128K]
    Capabilities: <access denied>
    Kernel driver in use: e1000e
    Kernel modules: e1000e

有人能帮我实现我的愿望吗?如果您需要有关我的系统等的更多信息,请直接询问。

感谢您的任何建议和答案。

答案1

您可以关注Ubuntu 服务器指南这里有基于 vfio 的直通示例。这样你就不需要解除绑定,而是在你的卡上创建虚拟功能,然后转发这些分区卡到您的虚拟机。它还提供了 libvirt xml 片段的示例,您可以将其直接添加到客户机 xml 中,也可以将其作为单独的文件供virsh 附加设备...

如果您没有支持 VF 的卡,您仍然可以按照您提到的方法解除设备的绑定。通过 libvirt 的转发部分看起来是一样的,但要解除绑定,您可以查看以下示例linux-KVM 维基使用 pci-stub。

如果你不想使用 libvirt,那么linux-KVM wiki pcilinux-KVM wiki vfio还在 qemu 命令行上保存了此示例。

相关内容