尽量参考官方教程,理解直通的原理后再操作,其他大部分教程都是针对自己的硬件环境,照搬很容易失败或异常。
独显直通
宿主机操作
直通包括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机操作
虚拟机配置
注意:
- pve最多只能添加5个pci设备(6.3版本)。
- BIOS使用默认的Seabios(OVMF方式后续再测试)。
- Display不要选Default和none,会导致虚拟机启动后连不上,选其他的貌似都行,我没有一个个试了。
- pci设置要钩上Primary GPU,让驱动程序无法区分物理和虚拟环境,否则安装英伟达驱动后,检测到这不是物理机,会停止驱动显卡(英伟达故意不让大家在虚拟机中使用-_-)。
核显直通
后面有机会再试。
总结
没有特殊需求就不要搞直通了,太折腾了!!!