我有一台新的笔记本电脑(联想 A485)在工作,几乎没有问题。之后它会打印AMD-Vi: IOAPIC[32] not in IVRS table
和内核恐慌。到目前为止,我已经找到了几种方法来启动和运行系统。
noapic
- 糟糕的性能和高温,所以不是一个很好的方法amd_iommu=off
- 也不理想ivrs_ioapic[32]=00:14.0 ivrs_ioapic[33]=00:00.2
- 这似乎工作正常iommu=soft
我的问题是关于iommu=soft
. 我不确定它到底是做什么的。这种模式的含义是什么?什么更可取,覆盖 IVRS 表或 iommu=soft?
我使用的是 Debian 10.8 和 Linux 内核 4.19.0-14。
我正在尝试使用 IOMMU 传递整个 USB 控制器(PCI Express 卡),但遇到问题。内核正在加载 ohci_pci 和 ehci_pci 驱动程序,我似乎无法阻止它或取消绑定它们。
我尝试删除它们(echo 1 > /sys/bus/pci/devices/...),但它冻结了系统。(内核通过堆栈跟踪等显示内核 BUG)
因此,我试图阻止内核绑定 ohci 和 ehci 驱动程序,以便 VFIO 可以使用它们而无需先解除绑定。
我尝试了几件事:
我认为内核正在使用内置的 ohci/ehci 驱动程序(而不是模块),因此也许它会在 pci-stub 或 vfio 阻止之前加载这些驱动程序?
我想尝试 PCI 直通。我已将旧的捕获视频卡传递给 Windows XP 来宾。
IOMMU
已启用;
vfio_pci
已加载
我运行这个命令:
virsh nodedev-detach pci_0000_05_05_0
lspci -s 00:05 -v
Run Code Online (Sandbox Code Playgroud)
它报告vfio
正在“运行”PCI 设备,但是当我使用 PCI 设备启动 XP 时,它给了我这个错误:
Please ensure all devices within the iommu_group are bound to their vfio bus driver.
Run Code Online (Sandbox Code Playgroud)
我做错了什么?