linux下怎么识别fioa卡,UNRAID使用NVIDIA显卡(直通篇)
UNRAID使用NVIDIA显卡(直通篇)
2019-12-17 11:11:30
17点赞
83收藏
43评论
在UNRAID下想要利用NVIDIA显卡,最为传统的方法是创建一个虚拟机,并将显卡直通进去。最早使用1080测试了直通功能,只需要在虚拟机设置里的Other PCI Devices选中1080即可。但20系显卡因为多了一个type c接口,情况有些变化,之前在知乎上分享了URNIAD 6.6.6直通2080ti的经历,特地将其转载过来。
错误
之前在Unraid里建立了一个使用GTX1080的虚拟机,想用RTX 2080Ti替换了GTX1080。修改虚拟机配置后,启动虚拟机时很不幸地报错了:
fio error: 0000:02:00.0: group 27 is not viable Please ensure all devices within the iommu_group are bound to their vfio bus driver.
这是因为2080Ti新增了一个USB Type-C接口,默认情况下Unraid的VM manager并不会将这个接口同时分配给虚拟机。
在TOOLS->System Devices->PCI Devices and IOMMU Groups可以看到该USB控制器与显示控制器在同一个IOMMU group内。
IOMMU group 27: [10de:1e04] 02:00.0 VGA compatible controller: NVIDIA Corporation TU102 [GeForce RTX 2080 Ti] (rev a1)
[10de:10f7] 02:00.1 Audio device: NVIDIA Corporation TU102 High Definition Audio Controller (rev a1)
[10de:1ad6] 02:00.2 USB controller: NVIDIA Corporation TU102 USB 3.1 Controller (rev a1)
[10de:1ad7] 02:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU102 UCSI Controller (rev a1)
因此只将显示控制器分配给IOMMU,就会出现上面的错误。
解决方案
将显示控制器与USB控制器分离开放到不同的IOMMU group内
该方案最简单,只需要将Unraid->SETTINGS->PCIe ACS overide改成Both,然后重启计算机就行。
IOMMU group 31: [10de:1e04] 02:00.0 VGA compatible controller: NVIDIA Corporation TU102 [GeForce RTX 2080 Ti] (rev a1)
IOMMU group 32: [10de:10f7] 02:00.1 Audio device: NVIDIA Corporation TU102 High Definition Audio Controller (rev a1)
IOMMU group 33: [10de:1ad6] 02:00.2 USB controller: NVIDIA Corporation TU102 USB 3.1 Controller (rev a1)
IOMMU group 34: [10de:1ad7] 02:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU102 UCSI Controller (rev a1)
重启完之后显示控制器与USB控制器就处于不同的IOMMU group了,虚拟机的设置也不用改。
将USB控制器也直通给虚拟机
如果不想修改PCIe ACS overide,可以把USB控制器也直通给虚拟机。这一部分主要是参考了youtube上的视频教程:https://www.youtube.com/watch?time_continue=202&v=UilWLtMYd-U。
作者提供了两条辅助命令非常方便。
for usb_ctrl in $(find /sys/bus/usb/devices/usb* -maxdepth 0 -type l); do pci_path="$(dirname "$(realpath "${usb_ctrl}")")"; echo "Bus $(cat "${usb_ctrl}/busnum") --> $(basename $pci_path) (IOMMU group $(basename $(realpath $pci_path/iommu_group)))"; lsusb -s "$(cat "${usb_ctrl}/busnum"):"; echo; done
第一条命令可以显示出USB设备与控制器的详细信息,比如Unraid启动盘是在哪个控制器下面。这一步其实对于我来说用处不大,因为我只想把2080Ti上的USB控制器直通给虚拟机。这主要是针对那些想把板载USB控制器直通的人,他们需要这些信息。
for iommu_group in $(find /sys/kernel/iommu_groups/ -maxdepth 1 -mindepth 1 -type d);do echo "IOMMU group $(basename "$iommu_group")"; for device in $(ls -1 "$iommu_group"/devices/); do if [[ -e "$iommu_group"/devices/"$device"/reset ]]; then echo -n "[RESET]"; fi; echo -n $'t';lspci -nns "$device"; done; done
第二条命令才是我真正需要的,直接找到IOMMU group 27,看到两个控制器的id为10de:1ad6与10de:1ad7。
IOMMU group 27
[RESET] 02:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU102 [GeForce RTX 2080 Ti] [10de:1e04] (rev a1)
02:00.1 Audio device [0403]: NVIDIA Corporation TU102 High Definition Audio Controller [10de:10f7] (rev a1)
02:00.2 USB controller [0c03]: NVIDIA Corporation TU102 USB 3.1 Controller [10de:1ad6] (rev a1)
02:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU102 UCSI Controller [10de:1ad7] (rev a1)
然后将vfio-pci.ids=10de:1ad6,10de:1ad7加入syslinux设置,然后重启计算。
default menu.c32
menu title Lime Technology, Inc.
prompt 0
timeout 50
label unRAID OS
menu default
kernel /bzimage
append vfio-pci.ids=10de:1ad6,10de:1ad7 initrd=/bzroot
打开虚拟机设置,将两个控制器分配给虚拟机。
最终效果
在设备管理器已经可以看到了2080Ti带的USB控制器了。买了一个绿联的拓展坞,测试后可以正常使用。如果需要一台高性能的游戏虚拟机,20系显卡是非常适合的。之前没有直通 USB 控制器的时候,每当临时插上 USB 设备,就要去 Unraid 网页分配一次,非常繁琐。而直通主板的 USB 控制器又有相当多的限制,如果单独购买 PCI-E 转 usb 扩展卡又太过于浪费。
linux下怎么识别fioa卡,UNRAID使用NVIDIA显卡(直通篇)相关推荐
- linux下怎么识别fioa卡,2020年新版电子警察信号灯设计、施工方案.docx
技术方案 2014年03月 TOC \o "1-5" \h \z \o "Current Document" 概述7 \o "Current Docu ...
- 在Linux下查看FC HBA卡的速率和状态
在Linux下查看FC HBA卡的速率和状态 1 查看FC HBA卡的WWN号 2 查看当前port的状态 3 查看PORT的端口ID 4 查看port支持的速率 5 在FC HBA没有插上光纤时 6 ...
- linux下无法识别u盘
经常会遇到Linux下无法识别u盘的情况,这里做一下记录: 1.在虚拟机(vbox)中无法识别u盘 vbox和宿主机对u盘的使用时独占的(即在某一时间只有二者之一能访问u盘,而不能同时访问),遇到vb ...
- 详解linux下auto工具制作Makefile源码包(制作篇)
2019独角兽企业重金招聘Python工程师标准>>> 详解linux下auto工具制作Makefile源码包(制作篇) 水木杨 一. 概述 为了更好的制作configure ...
- Linux(Ubuntu)下WiFi网卡(intel ax201)驱动与Nvidia显卡驱动冲突的解决办法
Linux(Ubuntu)下WiFi网卡(intel ax201)驱动与Nvidia显卡驱动冲突的解决办法 环境: 系统 Ubuntu 22.04 LTS 网卡ax201(微星b660m迫击炮wifi ...
- 提问:usb摄像头无输出画面 /window下能识别摄像头,无输出图像拍摄时提示0XA00F4292(PhotoCaptureStartTimeout) /linux下不能识别
硬背景:19年1月份购入两台1920x1080usb摄像头,闲置了很久,两个月前带回家以备不时之需,中途放在书包里可能有挤压置坏的可能性. 软背景:在linux下编译apriltag(计算机视觉二位合 ...
- 虚拟机中的linux系统无法识别SD卡
虚拟机内的ubuntu和centos都无法识别sd卡. 多次拔插发现有这个弹窗,之前一直以为是正常的,但是百度了一下需要将USB兼容性从2.0改为3.1就可以识别了.可能是因为读卡器插到了usb3.1 ...
- memset linux 头文件,linux下C/C++头文件梳理,看完这篇再也不会搞糊涂头文件了!...
一:前言 进行linux下C/C++服务端后台开发的都知道,需要跟各种头文件打交道. 比如使用printf函数则需要引用#include ,使用STL的map容器则要#include ,使用socke ...
- 完全用Deepin Linux娱乐、工作、学习(2)-- 显卡驱动篇
在前面<完全用Deepin Linux娱乐.工作.学习(1)>一文中,我简单和各位分享了关于Deepin Linux的基础体验.对于Deepin Linux来说其中有它的好也有它的不足,我 ...
最新文章
- 复旦计算机学硕分数线,复旦大学2019考研分数线公布,复旦复试经验请收好!...
- 如何用SQL分析电商用户行为数据(案例)
- bits/stdc++.h头文件总结
- 三件套都有什么_床上用品三件套、四件套、21件套都各指什么啊?
- app uniapp 获取位置_uniApp 地图使用
- 安卓Socket处理
- 前端学习(2771):图片上传
- [转载] Python中的numpy linalg模块
- 三个多月、40余场面试浓缩为6000字
- 1月第4周安全回顾 移动安全受关注 ***威胁公共设施
- 给用户配置hadoop权限
- shell教你如何批量解压缩——unzip命令
- 前序、中序、后序遍历的基础详解
- ARCore学习指引四剑客:原生、Unity、Unreal和WebAR
- ​2021年度学习清单
- 华为nova5iotg功能使用_华为nova5有OTG功能吗?可以连接U盘和鼠标吗[多图]
- 关于iphone设置显示模式为标准模式和放大模式时的区别
- 轴心时代的三大东方圣人老子、孔子和释迦牟尼
- java outputstream初始化_ByteArrayOutputStream简介和使用_动力节点Java学院整理
- springboot整合redis报错org.springframework.beans.factory.UnsatisfiedDependencyException
热门文章
- 纺织企业举步维艰,小微纺织企业该如何做?
- Windows 上6款卸载软件值得推荐
- 2020年Apple的UWB技术产品资料整理
- When you gather it, things would be counted. ​​​​
- 浅谈framework之PowerManagerService
- 形态学填充孔洞的几个问题
- Linux之安全最佳做法(未完成)
- Mac 下终端运行C++
- 问卷调查网站制作-前后端开发
- 光学定位与追踪技术_光学跟踪技术定位精准罗技M90鼠标仅32