UNRAID使用NVIDIA显卡(直通篇)

在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了,虚拟机的设置也不用改。

UNRAID使用NVIDIA显卡(直通篇)

将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

打开虚拟机设置,将两个控制器分配给虚拟机。

UNRAID使用NVIDIA显卡(直通篇)

最终效果

在设备管理器已经可以看到了2080Ti带的USB控制器了。买了一个绿联的拓展坞,测试后可以正常使用。如果需要一台高性能的游戏虚拟机,20系显卡是非常适合的。之前没有直通 USB 控制器的时候,每当临时插上 USB 设备,就要去 Unraid 网页分配一次,非常繁琐。而直通主板的 USB 控制器又有相当多的限制,如果单独购买 PCI-E 转 usb 扩展卡又太过于浪费。

(0)
PipitaPipita
上一篇 2020-05-02
下一篇 2020-05-23

相关文章

  • 利用 Caddy 一键反代网站并签发证书SSL

    安装Caddy 运行以下命令: 配置文件 以下所有示例域名为boluo.link,请注意替换为自己的域名 ! 1、服务器IP反向代理 下面是一个,用你服务器的IP来反向代理一个http协议的网站http://www.baidu.com 。 服务器IP也可以反向代理HTTPS协议的网站,但是需要自签SSL证书,现在的浏览器一般都不会认自签的SSL证书,所以不建…

    无关专业 2020-12-01
  • Teamviewer便携版

    https://www.pita.ltd/wp-content/uploads/2020/11/TeamViewer.zip

    无关专业 2020-11-28
  • 如何编译自己需要的 OpenWrt 固件

    Lean https://github.com/coolsnowwolf/lede 注意: 不要用 root 用户 git 和编译!!! 国内用户编译前最好准备好梯子 默认登陆IP 192.168.1.1, 密码 password 编译命令如下: 首先装好 Ubuntu 64bit,推荐 Ubuntu 18 LTS x64 命令行输入&n…

    无关专业 2020-12-10
  • VMware 虚拟机安装 macOS 详细教程

    为了装黑苹果系统,有时可能需要一个 macOS 环境来运行某些软件,当然还有大部分是为了工作需要我们要在苹果系统 macOS 上安装相应的软件进行测试,而平时用的最多又是 Windows 操作系统,总不能为了一两次测试学习而去购买一台Mac电脑,所以利用VMware虚拟机来安装Mac OS就是最好的选择了,今天这篇教程,就详细带大家解读如何用 VMware …

    无关专业 2020-12-10
  • 在外科医生生日当天做手术,患者的死亡率更高?

    「医生,日历上说明日宜手术,请您给我安排一下?」隔壁小李诉说着今天查房的遭遇,老成持重的林主任拍了拍小李的肩膀,「患者说的也不是全无道理嘛,手术的效果确实可能和时间有关。」 在美国医疗界,很早就有「七月效应(July Effect)」的说法,即在每年的七月,以及后面的一段时间内,手术并发症发生的概率相较于其他月份明显升高。 事实上,不同时间对于手术效果的影响…

    无关专业 2020-12-28
  • #脚本#甲骨文ARM DD重装Debian10,并升级5.10内核

    新建实例时选的 ubuntu 20.4,非 mini 版 1. 1 curl -fLO https://raw.githubusercontent.com/bohanyang/debi/master/debi.sh 2. 1 chmod a+rx debi.sh 3. 1 sudo ./debi.sh&nbs…

    无关专业 2021-09-20