您好,欢迎来到爱问旅游网。
搜索
您的当前位置:首页FPGA通过vfio实现pci-passthrough给kvm虚拟机

FPGA通过vfio实现pci-passthrough给kvm虚拟机

来源:爱问旅游网

一.配置流程

0.首先查阅官方的硬件支持列表或者查看BIOS中的相关选项,以确认cpu及主板是否支持intel或amd的硬件辅助虚拟化功能。另外需透传的设备也需支持pci-passthrough

以下步骤基于环境:Intel(R) Core(TM) i7-4790 CPU + Xilinx artix7 +ubuntu 16.04.3 LTS

1.在bios中打开硬件辅助虚拟化功能

将VT(VT-x)及VT-d选项更改为enable,使其支持硬件虚拟化。

2.编辑文件 /etc/default/grub,以更改liunx内核启动参数

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_iommu=on"
GRUB_CMDLINE_LINUX="locale=zh_CN intel_iommu=on"

中增加 intel_iommu=on

接着运行:

sudo update-grub

grub-mkconfig -o /boot/grub/grub.cfg

 以更新刚刚修改的内核参数,之后进行重启。

运行

cat /proc/cmdline |grep iommu

以查看目前的内核启动参数

有输出即为配置成功

输出如下:

运行

运行

virsh nodedev-dumpxml pci_0000_05_00_0

以查看此设备信息

可以看到目前的驱动为xdma

4. 将设备与目前的驱动解绑

运行

 virsh nodedev-detach pci_0000_05_00_0

得到结果

此时再次运行

virsh nodedev-dumpxml pci_0000_05_00_0

查看设备信息

此时设备没有驱动

5.加载vfio模块

modprobe vfio

modprobe vfio-pci

运行

lsmod | grep vfio

有输出即为加载成功

6.挂载vfio驱动

运行

sudo echo 10ee 7014 >/sys/bus/pci/drivers/vfio-pci/new_id

再次运行

virsh nodedev-dumpxml pci_0000_05_00_0

查看设备信息

此时的driver为vfio-pci

7.阶段性验证

此时查看设备所处的iommu_group

查看到设备所处的组号为13

查看此组下的所有设备

发现此组下只有一个设备0000:05:00.0

检测iommu_group是否绑定成功,运行

ls /dev/vfio

输出

会发现此文件夹下多了13这个组号,即为挂载成功!

8.启动KVM虚拟机

在终端输入以启动虚拟机管理软件

sudo virt-manager

点击感叹号对虚拟机硬件设备进行设置

点击 添加硬件 将FPGA添加至虚拟机的硬件菜单中

之后启动虚拟机

9.结果验证

在虚拟机中运行

lspci -nn

FPGA透传给KVM虚拟机完成。

二.透传过程中出现的错误

1.在宿主机中 运行 load_driver.sh 安装FPGA驱动时,出现权限不够的问题

解决方法:用 chmod 命令对shell脚本预付权限,再执行即可

# chmod 777 ./load.driver.sh
# ./load_driver.sh

2.安装FPGA驱动,出现Failed的问题

解决方法:

3.执行

 virsh nodedev-detach pci_0000_05_00_0

出现如下错误:

neither VFIO nor KVM device assignment is currently supported on this system

并且在下面的文件夹中找不到 iommu_group及iommu文件夹。

根据目前的认识,问题可能都出现在一个地方

在对内核启动文件进行更改时,开始只更改了

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_iommu=on"

而对下面这个参数没有做更改

GRUB_CMDLINE_LINUX="locale=zh_CN"

之后对此参数进行修改如下

再按照上方流程中的更新方式对grub文件进行更新并重启。

重启后,能够找到 iommu_group及iommu文件夹,能够对设备与其目前驱动进行解绑,能够查看此设别的iommu组号,能够将设备与vfio驱动挂载,进而继续上方(一)中的流程。

 

!!!特别注意:在将设备与宿主机上的驱动解绑之前,一定要为设备安装上驱动,再进行解绑!

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务