首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用vfio给出PCI探针上的EINVAL

用vfio给出PCI探针上的EINVAL
EN

Unix & Linux用户
提问于 2016-02-24 18:31:05
回答 2查看 3.3K关注 0票数 3

我正在尝试将PCIe设备连接到我的KVM域。我在一个IOMMU组中有两个设备(#28):

代码语言:javascript
复制
03:00.0 PCI bridge: Texas Instruments XIO2001 PCI Express-to-PCI Bridge
04:00.0 Multimedia audio controller: Texas Instruments TMS320C6414 TMS320C6415 TMS320C6416

lspci -n值:

代码语言:javascript
复制
03:00.0 0604: 104c:8240
04:00.0 0401: 104c:a106

我正在运行Ubuntu 14.04。我有:

  • 安装KVM,设置域,确保KVM和vfio模块被加载。
  • 在内核命令行上设置intel_iommu=on并验证它是用dmesg启用的
  • kvm-ok打印加速已全部设置,芯片组支持VT-d。
  • 验证03:00.0设备没有当前在ls -l /sys/bus/pci/devices/0000\:03\:00.0/下列出的驱动程序

因此,我这样做是为了将设备绑定到vfio:

代码语言:javascript
复制
# echo "104c a106" > /sys/bus/pci/drivers/vfio-pci/new_id
# echo "104c 8240" > /sys/bus/pci/drivers/vfio-pci/new_id

然后:

代码语言:javascript
复制
root@tupac:~# echo "0000:03:00.0" > /sys/bus/pci/drivers/vfio-pci/bind 
bash: echo: write error: No such device

但是,多媒体控制器显示为AOK:

代码语言:javascript
复制
root@tupac:~# ls -l /sys/bus/pci/drivers/vfio-pci/
total 0
lrwxrwxrwx 1 root root    0 Feb 24 13:07 0000:04:00.0 -> ../../../../devices/pci0000:00/0000:00:02.2/0000:03:00.0/0000:04:00.0
--w------- 1 root root 4096 Feb 24 13:05 bind
lrwxrwxrwx 1 root root    0 Feb 24 13:07 module -> ../../../../module/vfio_pci
--w------- 1 root root 4096 Feb 24 13:15 new_id
--w------- 1 root root 4096 Feb 23 19:47 remove_id
--w------- 1 root root 4096 Feb 23 19:43 uevent
--w------- 1 root root 4096 Feb 24 13:07 unbind

03:00.0 (这是一个PCIe到PCI适配器)不会出现在vfio-pci的S设备下。同样地,当我试图使用kvm托管配置时,我会得到:

代码语言:javascript
复制
virsh # start rivendell
error: Failed to start domain rivendell
error: Failed to bind PCI device '0000:03:00.0' to vfio-pci: No such device

在syslog下,我得到了我认为是PCIe EINVAL代码的代码:

代码语言:javascript
复制
Feb 23 19:46:46 tupac kernel: [  214.159625] vfio-pci: probe of 0000:03:00.0 failed with error -22

是什么引起的?这是否与适配器后面的系统中存在PCI总线有关?

EN

回答 2

Unix & Linux用户

发布于 2016-02-25 01:57:04

vfio-pci不支持桥接器。

与关于iommu组需要一起分配的建议相反,适当的做法是只在桥的另一边分配设备,然后在客人中显示得很好。

票数 0
EN

Unix & Linux用户

发布于 2021-03-13 02:35:18

这个论坛带我到了这个github回购,它包含脚本vfio bind.sh,它在试图将第二个无线网卡绑定到vfio驱动程序时为我修复了这个问题。

语法为vfio-pci-bind.sh 0000:00:00.0,其中0000:00:00.0是设备ID。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/265541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档