尽量参考官方教程,理解直通的原理后再操作,其他大部分教程都是针对自己的硬件环境,照搬很容易失败或异常。

独显直通

宿主机操作

直通包括OVMF、Seabios两种方式,OVMF需要主版支持,先尝试采用Seabios方式。

开启IOMMU,修改/etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

更新grub

update-grub

确认IOMMU生效

dmesg | grep -e DMAR -e IOMMU

出现"DMAR: IOMMU enabled"即生效

修改 /etc/modules

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

确认显卡vendor id信息:

$ lspci -n -s 01:00
01:00.0 0300: 10de:1381 (rev a2)
01:00.1 0403: 10de:0fbc (rev a1)

修改vfio配置

echo "options vfio-pci ids=10de:1381,10de:0fbc" > /etc/modprobe.d/vfio.conf

驱动黑名单

echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf 
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf 
echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf 

更新

update-initramfs -u

确认IOMMU Interrupt Remapping生效

dmesg | grep 'remapping'

输出以下2者之一即生效

AMD-Vi: Interrupt remapping enabled
DMAR-IR: Enabled IRQ remapping in x2apic mode

重启生效

reboot

VM机操作

虚拟机配置

CleanShot-2021-01-07_16.30.16

注意:

  1. pve最多只能添加5个pci设备(6.3版本)。
  2. BIOS使用默认的Seabios(OVMF方式后续再测试)。
  3. Display不要选Default和none,会导致虚拟机启动后连不上,选其他的貌似都行,我没有一个个试了。
  4. pci设置要钩上Primary GPU,让驱动程序无法区分物理和虚拟环境,否则安装英伟达驱动后,检测到这不是物理机,会停止驱动显卡(英伟达故意不让大家在虚拟机中使用-_-)。

CleanShot-2021-01-07_16.31.59

核显直通

后面有机会再试。

总结

没有特殊需求就不要搞直通了,太折腾了!!!

参考

官方教程

PVE的安装,中文手册及GPU独显核显直通、万兆内网的那些事

用Proxmox搞定gpu穿透

Proxmox VE 6 Nvidia显卡直通问题解决方案

PVE直通核显给虚拟机