请帮助解决 XEN PCI 设备透传问题

请帮助解决 XEN PCI 设备透传问题

我在 XEN 中使用 PCI 直通时遇到了问题。

内核:4.15.0-23-generic CPU:Intel Core i7 - 在英特尔网站上看到规格:它支持 VT-d、VT-x 和所有其他技术!

检查 XEN 是否准备好 IOMMU / VT-d / VT-x:

xl dmesg | grep -i hvm

输出:

(XEN) HVM: ASIDs enabled.
(XEN) HVM: VMX enabled
(XEN) HVM: Hardware Assisted Paging (HAP) detected
(XEN) HVM: HAP page sizes: 4kB, 2MB

检查IOMMU:

(XEN) Enabling APIC mode:  Flat.  Using 1 I/O APICs
(XEN) I/O virtualisation enabled

因此,我开始了(通过 PCI USB 控制器,其中 xx:yy.z 是 lspci 的 ID):

# modprobe xen-pciback
# xl pci-assignable-add xx:yy.z

检查设备是否已准备好通过:

sudo xl pci-assignable-list

它显示:0000:xx:yy.z,所以我很高兴我的设备已准备就绪。然后:

sudo nano /etc/xen/ubuntu.hvm

我编辑配置并添加以下行:

pci = ['0000:xx:yy.z']

然后开始:

sudo xl create /etc/xen/ubuntu.hvm

我看到错误:

Parsing config from /etc/xen/ubuntu.hvm
libxl: error: libxl_pci.c:1111:do_pci_add: Domain 2:xc_assign_device failed: Cannot allocate memory
libxl: error: libxl_pci.c:1306:libxl__add_pcidevs: Domain 2:libxl_device_pci_add failed: -3
libxl: error: libxl_create.c:1458:domcreate_attach_devices: Domain 2:unable to add pci devices
libxl: error: libxl_domain.c:1003:libxl__destroy_domid: Domain 2:Non-existant domain
libxl: error: libxl_domain.c:962:domain_destroy_callback: Domain 2:Unable to destroy guest
libxl: error: libxl_domain.c:889:domain_destroy_cb: Domain 2:Destruction of domain failed

有什么想法吗?我在谷歌上搜索,但没有找到我的问题!我的第二台 AMD Ryzen PC 成功通过了 PCI USB,没有任何错误。

答案1

您必须确保 dom0 没有捕获您在启动时尝试传递的 PCI 设备。

确保在/etc/default/grub.d/xen.cfg

在线GRUB_CMDLINE_XEN="pciback.hide=(xx:yy.z)"

跑步update-grub

然后重新启动。

相关内容