GPU 直通设置指南

GPU 直通设置指南

我已经尝试了好几天了(期间必须重新安装 arch 两次),在我的电脑上设置 GPU 直通但没有成功。硬件是

  • 华硕Z97-P
  • 英特尔 I5-4690
  • AMD Radeon R9 380(催化剂将其视为 R9 285)

它应该能够支持 IOMMU。我的电脑运行 Arch Linux。

我一直在关注以下两篇有关该主题的文章:

目标

不幸的是,我只有一张显卡(和板载英特尔),但当我想使用 Windows 时,我非常乐意从命令行启动虚拟机,否则我只想输入 startx 来利用显卡fglrx 模块。

我如何尝试实现它

我将 intel_iommu=on 选项传递给 initrd,这导致使用以下列表

# find /sys/kernel/iommu_groups -type l

/sys/kernel/iommu_groups/0/devices/0000:00:00.0
/sys/kernel/iommu_groups/1/devices/0000:00:01.0
/sys/kernel/iommu_groups/1/devices/0000:01:00.0
/sys/kernel/iommu_groups/1/devices/0000:01:00.1
/sys/kernel/iommu_groups/2/devices/0000:00:14.0
/sys/kernel/iommu_groups/3/devices/0000:00:16.0
/sys/kernel/iommu_groups/4/devices/0000:00:1a.0
/sys/kernel/iommu_groups/5/devices/0000:00:1b.0
/sys/kernel/iommu_groups/6/devices/0000:00:1c.0
/sys/kernel/iommu_groups/6/devices/0000:00:1c.2
/sys/kernel/iommu_groups/6/devices/0000:00:1c.3
/sys/kernel/iommu_groups/6/devices/0000:03:00.0
/sys/kernel/iommu_groups/6/devices/0000:04:00.0
/sys/kernel/iommu_groups/7/devices/0000:00:1d.0
/sys/kernel/iommu_groups/8/devices/0000:00:1f.0
/sys/kernel/iommu_groups/8/devices/0000:00:1f.2
/sys/kernel/iommu_groups/8/devices/0000:00:1f.3

这可能意味着 IOMMU 已成功启用,但根据 arch wiki,它可能未正确设置(请参阅最后一行代码):

#dmesg|grep -e DMAR -e IOMMU

[    0.000000] ACPI: DMAR 0x00000000DDB41D40 000080 (v01 INTEL  BDW      00000001 INTL 00000001)
[    0.000000] Intel-IOMMU: enabled
[    0.024745] dmar: IOMMU 0: reg_base_addr fed90000 ver 1:0 cap d2008c20660462 ecap f010da
[    0.024747] IOAPIC id 8 under DRHD base  0xfed90000 IOMMU 0
[    0.296873] DMAR: No ATSR found
[    0.296964] IOMMU: dmar0 using Queued invalidation
[    0.296965] IOMMU: Setting RMRR:
[    0.296973] IOMMU: Setting identity map for device 0000:00:14.0 [0xdee7d000 - 0xdee8bfff]
[    0.296996] IOMMU: Setting identity map for device 0000:00:1a.0 [0xdee7d000 - 0xdee8bfff]
[    0.297012] IOMMU: Setting identity map for device 0000:00:1d.0 [0xdee7d000 - 0xdee8bfff]
[    0.297024] IOMMU: Prepare 0-16MiB unity mapping for LPC
[    0.297029] IOMMU: Setting identity map for device 0000:00:1f.0 [0x0 - 0xffffff]
[    3.326568] AMD IOMMUv2 driver by Joerg Roedel <[email protected]>
[    3.326569] AMD IOMMUv2 functionality not available on this system

我已经尝试过 arch wiki 网站上提到的其他选项(将 pci-stub 传递给 mkinitcpio.conf 中的模块),但最后一行仍然存在。

第一个问题:第一个命令的输出是否足以说明我的系统正确使用了 IOMMU?

带着一点不信任,我已经到达了必须将 VGA 绑定到 pci-stub 的部分,这已经导致了一些重新安装,所以我想从这里至少有一些方向,是否使用pci-stub 或 VFIO 等。

答案1

虽然这是一个老问题:

AMD IOMMUv2 functionality not available on this system

预计会出现在 Intel 系统上,因为它没有 AMD IOMMUv2。即使在 AMD 系统上,如果不支持 IOMMUv2 而只支持 v1,这也是正常的。如果您可以看到这些组并且看到 IOMMU 已启用的消息,请继续。

答案2

这是关于 GPU 直通的精彩指南:

https://www.heiko-sieger.info/running-windows-10-on-linux-using-kvm-with-vga-passthrough/

不幸的是我只有一张显卡(和板载英特尔)

您可能需要两个 GPU。

相关内容