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

Warning: Undefined array key "related_news" in /var/www/html/www.pita.ltd/wordpress/wp-content/themes/justnews/single.php on line 175

相关文章

  • 神仙文案

    1、“我在山谷湖泊间拾荒,捡拾散落的星辰和光。” 2、我爱了整个宇宙,只为了跟你碰头。 3、落幕下的花店,玫瑰将荒野的故事告诉风烟。 4、“一枝真心准备的花胜过千朵玫瑰。” 5、“我搬来整个城市的玫瑰,赠你一个错过的春天。” 6、等风起,等花开,等我们再次相遇。 7、窗前的白鸽飞过,你眼中落下星光。 8、“人间永远有野火焚不尽的诗书和法钵罩不住的柔情。” 9…

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

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

    2020-12-28
  • #脚本#SSH端口怎么防止被暴力破解攻击?使用一键脚本自动拉黑

    SSH端口两种防御脚本 方法1: 超过10次登陆失败就封掉IP,创建shell脚本:secure_ssh.sh 123456789101112 #! /bin/bashcat /var/log/secure|awk ‘/Failed/{print $(NF-3)}’|sort|uniq -c|awk&nbsp…

    无关专业 2021-09-20
  • 如何让手上的E5-v3处理器工作在最佳频率——总结篇

    前言:全核心最大睿频与工作原理     上篇中说,通过测试得出E5-v3是不能通过手动调节倍频的方式锁定到最大睿频。而实际上有人眉头一皱,发现事情并不单纯。。。    结果E5-v3系列的一个勘误被发现了。我们知道,Haswell的桌面级cpu,如i5-4570,在早期bios中可以手动将全部核心锁定在最大睿频运行。虽然随后intel马上发布微码更新修复了这…

    无关专业 2019-12-08
  • PROXMOX PVE 设置国内源

    目前Proxmox中文社区源已正式提供镜像服务,镜像更新频率为每10小时,镜像站机房存放在法国巴黎online机房使用阿里云、华为云融合提供国内CDN加速服务。 地址 http://download.proxmox.wiki # 删除企业源 rm -rf /etc/apt/sources.list.d/pve-enterprise.list #下载秘钥 wg…

    无关专业 2020-12-01
  • PVE导入img为磁盘

    ./img2kvm <img文件> <vmid如101>  <虚拟磁盘名称如vm-101-disk-1> 另一种方法: qemu-img convert -f raw -O qcow2 DS3617xs_DSM6.1_Broadwell.img vm-103-disk-2.qcow2…

    无关专业 2020-07-19