使用passthrough模式,只通过PCI任意设备(该过程是在RHEL7系统进行,其他系统原理一样)
来源:互联网 发布:讲你知有没有国语 编辑:程序博客网 时间:2024/06/06 08:54
1.在HOST选择PCI设备
[root@localhost~]# dmesg |grep -e DMAR -e IOMMU
[ 0.000000] ACPI: DMAR 000000007b7be000 00120(v01 INSYDE HSW-LPT 00000001 ACPI00040000)
[ 0.155894] dmar: IOMMU 0: reg_base_addrfbffc000 ver 1:0 cap 8d2078c106f0466 ecap f020df
[ 0.155899] dmar: IOMMU 1: reg_base_addrc7ffc000 ver 1:0 cap 8d2078c106f0466 ecap f020df
[ 0.156023] IOAPIC id 10 under DRHD base 0xfbffc000 IOMMU 0
[ 0.156024] IOAPIC id 8 under DRHD base 0xc7ffc000 IOMMU 1
[ 0.156025] IOAPIC id 9 under DRHD base 0xc7ffc000 IOMMU 1
- 选择要使用的passthrough设备
a.
[root@localhost ~]# lspci -nn |grep NVIDIA
06:00.0 3D controller [0302]: NVIDIA Corporation Device [10de:15f8](rev a1)
87:00.0 3D controller [0302]: NVIDIACorporation Device [10de:15f8] (rev a1)
PCI bus number: PCIdevice number.Function number
b.查看所有的PCI接口
$virsh nodedev-list --tree
c.
可以查看两个PCI的接口对应了NVIDIA设备
[root@localhost ~]# virsh nodedev-dumpxml pci_0000_06_00_0
<device>
<name>pci_0000_06_00_0</name>
<path>/sys/devices/pci0000:00/0000:00:03.0/0000:06:00.0</path>
<parent>pci_0000_00_03_0</parent>
<driver>
<name>nvidia</name>
</driver>
<capabilitytype='pci'>
<domain>0</domain>
<bus>6</bus>
<slot>0</slot>
<function>0</function>
<product id='0x15f8'/>
<vendorid='0x10de'>NVIDIA Corporation</vendor>
<numa node='0'/>
<pci-express>
<link validity='cap'port='0' speed='8' width='16'/>
<link validity='sta'speed='8' width='16'/>
</pci-express>
</capability>
</device>
[root@localhost~]# virsh nodedev-dumpxml pci_0000_87_00_0
<device>
<name>pci_0000_87_00_0</name>
<path>/sys/devices/pci0000:80/0000:80:03.0/0000:87:00.0</path>
<parent>pci_0000_80_03_0</parent>
<driver>
<name>nvidia</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>135</bus>
<slot>0</slot>
<function>0</function>
<product id='0x15f8' />
<vendor id='0x10de'>NVIDIACorporation</vendor>
<numa node='1'/>
<pci-express>
<link validity='cap' port='0'speed='8' width='16'/>
<link validity='sta' speed='8'width='16'/>
</pci-express>
</capability>
</device>
- 将设备从宿主机解除绑定
echo "10de15f8" >/sys/bus/pci/drivers/pci-stub/new_id
echo 0000:06:00.0> /sys/bus/pci/devices/0000:06:00.0/driver/unbind ###为PCI的ID number
echo 0000:06:00.0 > /sys/bus/pci/drivers/pci-stub/bind ###为PCI的IDnumber
- 编辑grub,启动项,来打开IOMMU功能模块。(VFIO等报错的时候,是因为没启用该功能)
$vim /etc/default/grub
添加:intel_iommu=on
使其生效要进行:
update-grub
reboot
- 关闭SElinux安全策略(目前生产环节的机器状态为disable)
Setenforce 0
Getenforce
永久修改:vim /etc/selinux/config
- 在对应的VM添加PCI设备
<devices> …
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<addressdomain='0x0000' bus='0x87' slot='0x00' function='0x0'/>
</source>
</hostdev>
</devices>
- 启动VM,virsh start vm-03
192.168.122.15 0x1 virbr0
192.168.122.142 0x1 virbr0
- 使用passthrough模式,只通过PCI任意设备(该过程是在RHEL7系统进行,其他系统原理一样)
- qemu使用PCI passthrough设备
- RHEL7 系统的安装过程
- 关于android系统的分辨率:使用其他设备模拟该分辨率
- PCI passthrough
- Centos 7 + Openstack + PCI passthrough(透传)
- ZwSystemDebugControl函数列举系统PCI设备ID
- Android系统Recovery工作原理之使用update.zip升级过程分析(四)---Android系统Recovery模式的工作
- Android系统Recovery工作原理之使用update.zip升级过程分析(四)---Android系统Recovery模式的工作
- 数据库与系统数据库一样该怎么办
- xen pci-passthrough 2
- pci passthrough with qemu
- xen pci-passthrough 2
- Android系统Recovery工作原理之使用update.zip升级过程分析(四)---Android系统Recovery模式的工作原理
- Android系统Recovery工作原理之使用update.zip升级过程分析(四)---Android系统Recovery模式的工作原理
- Android系统Recovery工作原理之使用update.zip升级过程分析(四)---Android系统Recovery模式的工作原理
- Android系统Recovery工作原理之使用update.zip升级过程分析(四)---Android系统Recovery模式的工作原理
- Android系统Recovery工作原理之使用update.zip升级过程分析(四)---Android系统Recovery模式的工作原理
- 实现Runnable接口,通过Thread启动多线程
- 绝对定位居中,宽度多宽都没事
- CentOS7下搭建nexus
- 视频剪辑软件怎么调声像和音量?
- 根据jar包路径获取POPJ包含继承关系属性与字段
- 使用passthrough模式,只通过PCI任意设备(该过程是在RHEL7系统进行,其他系统原理一样)
- Ubuntu 16.04 LTS安装telnet & ssh
- Oracle表空间专题系列
- phpstudy是个好东西
- Active Learning: 一个降低深度学习时间,空间,经济成本的解决方案
- Android 5.x新增控件之-TextInputLayout控件
- Python 3 极简教程.pdf
- 数据科学家需要掌握的10个基本统计技术
- OpenCV人脸识别之二:模型训练