特此感谢pcbeta论坛的wxzmz大神耐心指点,特此分享,希望对更多人又用!!!
重要提示:直通成功后,开启虚拟机直到进入系统,直通的显示器才会有画面!!!
本人小白,最近折腾PVE显卡直通,特此把折腾过程记录下来,省的忘记。PVE的安装不细说,网上有很多教程,我使用etcher写到U盘安装。硬件:英特尔® 服务器主板 S1400FP4主板 ,E5 2450v2 CPU,刷的技嘉RX560d显卡。主板bios设置过的地方如图:
小白玩PVE proxmox RX560D显卡直通_第1张图片小白玩PVE proxmox RX560D显卡直通_第2张图片


新建安装一个win10虚拟机待用。
小白玩PVE proxmox RX560D显卡直通_第3张图片

使用PUTTY登录PVE,执行以下指令
1.修改/etc/default/grub文件
nano /etc/default/grub
把GRUB_CMDLINE_LINUX_DEFAULT="quiet"改成
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=efifb:off"
执行“update-grub”
小白玩PVE proxmox RX560D显卡直通_第4张图片

注意,我的硬件环境下,不添加video=efifb:off直通显卡后会出现下图提示,显卡驱动出现代码31,安装显卡驱动后,重启虚拟机导致PVE也重启了,不能正常使用。添加video=efifb:off后直通显卡,也会出现代码31,但是安装驱动后一切正常,鲁大师可以跑分。
小白玩PVE proxmox RX560D显卡直通_第5张图片

2.修改/etc/modules文件
nano /etc/modules
新增以下内容
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
然后执行“update-initramfs -u -k all”并重启pve
小白玩PVE proxmox RX560D显卡直通_第6张图片

3.执行lspci -v找到你的显卡地址,我直接在web界面的“硬件-添加-PCI设备”查看,我的显卡是04:00.0以及04:00.1。
小白玩PVE proxmox RX560D显卡直通_第7张图片

4.执行lspci -n -s 04:00,我的RX560d返回
03:00.0 0300: 1002:67ef (rev e5)
03:00.1 0403: 1002:aae0
小白玩PVE proxmox RX560D显卡直通_第8张图片

5.执行
echo "options vfio-pci ids=1002:67ef,1002:aae0" > /etc/modprobe.d/vfio.conf
这里的1002:67ef,1002:aae0为以上指令返回的值,显卡不同返回值也不同。

6.修改/etc/modprobe.d/pve-blacklist.conf
nano /etc/modprobe.d/pve-blacklist.conf
添加以下内容
blacklist nvidiafb
blacklist nouveau
blacklist nvidia
blacklist radeon
blacklist amdgpu

运行update-initramfs -u -k all然后重启pve,至此直通设置大致完成,为什么说大致完成,中途我碰到异常情况,以下说明

7.添加显卡直通。此处注意,如果勾选“主GPU",控制台会黑屏。只能使用直通的显示器和鼠标键盘或者远程桌面操作。
小白玩PVE proxmox RX560D显卡直通_第9张图片小白玩PVE proxmox RX560D显卡直通_第10张图片

8.如果按照以上步骤直通后,不开启主”GPU",进入虚拟的win10后,显卡直通出现驱动程序问号,直通不正常,可以执行以下指令,这样是否开启“主GPU"都不影响了。
执行
echo 1 > /sys/module/kvm/parameters/ignore_msrs
echo "options kvm ignore_msrs=Y">>/etc/modprobe.d/kvm.conf && update-initramfs -k all -u
然后重启

另外,安装驱动最好使用控制台,不使用远程桌面。

特此感谢pcbeta论坛的wxzmz大神耐心指点,特此分享,希望对更多人又用!!!