ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践

这篇具有很好参考价值的文章主要介绍了ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

设备直通是一种虚拟化资源分配方式,通过将物理设备直通给虚拟机环境,达到虚拟机可以直接访问物理设备的目的,直通功能对设备的要求不高,不需要设备支持PF/VF,目前市面上的显卡/网卡一般都支持直通。典型场景比如有两块显卡,一块主机用,另一块虚拟机用,主板有集成显卡的可以采用将集成显卡给宿主机,PCI的独立显卡给虚拟机用。这里的用法是将PCI以太网卡直通给QEMU虚拟机,而HOST机上使用无线网卡,今天来探索一下它的玩法。

实践平台

ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践

环境安装

1.安装QEMU虚拟机环境以及虚拟机管理工具环境:

sudo apt-get install qemu-kvm qemu-system libvirt-bin  bridge-utils virt-manager ssh-askpass-gnome --no-install-recommends

ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践

2.默认BIOS中已经ENABLE了CPU虚拟化和设备虚拟化能力,所以这一步操作忽略。

ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践

3.Enable PCI IOMMU,参考如下文章:

Linux ion&dma-buf&iommu的原理_papaofdoudou的博客-CSDN博客

4.确认需要穿透的pci设备和设备号,我们透传的设备如下图所示,Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller。

ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践

透传设备的地址BDF为:00000:02:00.0,设备ID为10ec:8168.

设置HOST机上的PCI设备

HOST端通过如下命令查看PCI设备信息

virsh nodedev-list --tree

ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践

首先在HOST端将PCI以太网卡设备解绑,将其驱动从默认的r8169切换为vfio-pci,这个过程中,主机的以太网络连接会中断,不过没有关系,主机上还有另外一个集成的无线网卡。

ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践

ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践

 执行如下命令查看当前设备信息:

$ virsh nodedev-dumpxml pci_0000_02_00_0

从设备信息中看到,设备驱动是r8169,设备的IOMMU分组是9。

ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践

查看IOMMU分组信息确实如此,分组为9

ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践

ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践

 下一步在HOST对设备解绑

$ virsh nodedev-detach pci_0000_02_00_0

ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践

解绑后,主机以太网卡功能已经失能,需要连接无线网卡。

此时我们需要加载内核的VFIO模块,由于默认UBUNTU18.04内核已经将vfio.ko,vfio-pci.ko两个模块builtin到内核中,所以这一步操作系统已经帮我们做了,不需要其它操作。

针对以太网卡设备使能VFIO驱动

执行如下命令,将系统的VENDOR和PRODUCT ID作为输入,写入vfio-pci/new_id节点,使能VFIO驱动,bind to vfio-pci Driver.(貌似执行前面的detach之后,这一步不是必须的)。

echo 10ec 8168 > /sys/bus/pci/drivers/vfio-pci/new_id

ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践

 执行后,再次查看设备信息,会发现其驱动已经从r8196切换为vfio-pci:

ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践

ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践

确认IOMMU分组,隶属于同一个IOMMU GROUP的设备必须整体透传给虚拟机&#文章来源地址https://www.toymoban.com/news/detail-435803.html

到了这里,关于ubuntu18.04下pass-through直通realteck PCI设备到qemu-kvm虚拟机实践的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ubuntu18.04环境搭建

    sudo apt install make sudo apt install make-guile 运行Ubuntu的主机 打开终端,输入【sudo apt update】命令。 输入密码,确认授权。 输入【sudo apt install git】命令。 输入【Y】,确认命令执行。 输入【git --version】命令,查看安装版本。 Git当前版本为【2.30.2】,就此安装完成。 打开Ubuntu终端

    2023年04月22日
    浏览(103)
  • ubuntu 18.04网络问题

    安装好系统之后,检查gcc和make是否已经安装 如果未安装,则安装gcc和make 安装openssh-server 安装网络工具和防火墙 开通端口 准备设置静态IP时,发现没有有线网卡,无法正常插网线进行联网。 执行ipconfig 查看网卡配置是否有 ethxx 或者 enxx ,也没有,则说明有线网卡的驱动需要

    2024年01月25日
    浏览(44)
  • ubuntu18.04安装部署环境

    更新apt源 下载mysql-server 查看mysql的状态 进入mysql终端 设置root密码 登录mysql 回到不用密码的方式登录 添加账户 root账号远程访问 下载redis-server 检查redis服务状态 修改配置文件开启远程连接 重启服务 下载nginx 配置文件夹 启动nginx服务

    2024年02月01日
    浏览(55)
  • Ubuntu 18.04开发环境搭建

            工作不易,为了避免未来需要重装系统的进行折腾,个人进行了Ubuntu环境配置的整合,方便自己未来能顺畅的配置好开发环境,同时分享给大家。本文多出有转载其他文,并相应的标注了转载内容,如有侵权请联系博主删除。 vmware下载: 链接:https://pan.baidu.com

    2024年02月02日
    浏览(61)
  • Ubuntu18.04安装ROS

    目录 一、安装ROS 1、ROS简介 2、安装ROS  二、ROS初步使用 1、小海龟  2、控制小海龟走圆形 (1)、创建工作空间  (2)、编译工作空间  (3)、配置环境变量  (4)、画圆程序的编写  (5)、控制小海龟走圆形  三、总结   机器人操作系统(Robot Operating System, ROS)是一个应

    2024年02月14日
    浏览(46)
  • ubuntu 18.04安装docker

    from:Install Docker Engine on Ubuntu | Docker Documentation Install from a package If you can’t use Docker’s  apt  repository to install Docker Engine, you can download the  deb  file for your release and install it manually. You need to download a new file each time you want to upgrade Docker Engine. Go to Index of linux/ubuntu/dists/. Select your

    2024年02月05日
    浏览(66)
  • ubuntu 18.04 安装pcl

    Ubuntu18.04安装PCL(详细教程)_pcl ubuntu_一盆柠檬的博客-CSDN博客

    2024年02月12日
    浏览(52)
  • ubuntu18.04如何更新到22.04

    打开终端并更新系统,使用以下命令: 确保系统是最新的,然后备份数据,以防万一。 执行以下命令,安装 update-manager-core: 执行以下命令,将Ubuntu 18.04升级到20.04: 确保Ubuntu 18.04已更新到最新版本。 确保启用LTS升级,使用以下命令来检查: 确保输出显示  Prompt=lts 如果系

    2024年02月02日
    浏览(47)
  • Ubuntu系统升级16.04升级18.04

      作为Linux发行版中的后起之秀,Ubuntu 在短短几年时间里便迅速成长为从Linux初学者到实验室用计算机/服务器都适合使用的发行版,目前官网最新版本是22.04。Ubuntu16.04是2016年4月发行的版本,于2019年4月停止更新维护。很多软件支持的Ubuntu最早版本也是18.04,所以考虑对现有

    2024年01月20日
    浏览(54)
  • 【Ubuntu】——ubuntu18.04配置静态ip

    ubuntu18.04配置静态ip 要点: 1. root 权限; 2.打开 /etc/netplan/01-network-manager-all.yaml 3.修改内容如下: 1.查找 netplan 目录下默认的网络配置文件,文件后缀为 .yaml ,我的是叫 01-network-manager-all.yaml 的文件。 如果没有可以使用 sudo gedit 01-network-manager-all.yam 自己创建和。 2.输入 ifconf

    2024年02月11日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包