家庭服务器 篇三十五:PVE环境5600G核显直通并输出HDMI接口
我的All-in_One主机最近加装了一块Tesla P4显卡,但5600G的核显我也不想浪费。于是折腾了一下PVE环境下5600G核显直通并输出到HDMI接口,并尝试了一下虚拟机中“5600G+Tesla P4”的组合。
5600G核显直通网上有几个成熟方案。我推荐用“李晓流”整理的方案抄作业。整个核显直通过程操作稍微繁琐点,但不算困难。
准备工作:
首先准备好主板BIOS和vBIOS提取工具:UBU、edk2-BaseTools-win32等。把主板BIOS解压到UBU工具目录,运行UBU.bat文件,得到GOP和vBIOS两个目录:
GOP目录的文件是AMDGopDriver.efi,接下在命令行中打开edk2-BaseTools-win32目录,运行如下命令(自行修改AMDGopDriver.efi文件路径):
.EfiRom.exe -f 0x1002 -i 0xffff -e D:vbiosvbiosAMDGopDriver.efi
在AMDGopDriver.efi同目录下会生成一个AMDGopDriver.rom文件备用。
vBIOS目录有2个dat文件,在PVE中执行命令查看核显编号:
确定应该用的是vbios_1638.dat这个文件,将vbios_1638.dat、AMDGopDriver.rom上传到PVE的/usr/share/kvm目录中备用。
*注意vBIOS导出不止这一个方法,只要能有效导出VBios文件即可。
准备工作完成,接下来在PVE上进行操作。
PVE8.0环境5600G核显直通
我所用的PVE环境为8.0版本。主板BIOS上需要事先设置开启iommu和SR-IOV。
PVE开启iommu,AMD部分显卡直通需要添加”initcall_blacklist=sysfb_init“这个参数:
vim /etc/default/grub
#修改如下设置
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
#amd cpu改为:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt initcall_blacklist=sysfb_init"
然后更新grub:
update-grub
用 dmesg | grep -e DMAR -e IOMMU 命令验证是否开启:
屏蔽开源显卡驱动,避免开机时显卡被系统加载:
#AMD显卡
echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf
echo "blacklist amdgpu" >> /etc/modprobe.d/blacklist.conf
#NVIDIA显卡
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nvidiafb" >> /etc/modprobe.d/blacklist.conf
#INTEL核显
echo "blacklist snd_hda_intel" >> /etc/modprobe.d/blacklist.conf
echo "blacklist snd_hda_codec_hdmi" >> /etc/modprobe.d/blacklist.conf
echo "blacklist i915" >> /etc/modprobe.d/blacklist.conf
#部分主板需要允许不安全的设备中断
echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" >> /etc/modprobe.d/blacklist.conf
更新 initramfs 并重启:
update-initramfs -k all -u
reboot
在PVE中新建一个Windows虚拟机,机型选择q35、BIOS选择OVMF、CPU模式选host:
新建完主机后,然后添加PCI设备。选择核显编号,勾选主GPU、ROM-Bar、PCI-Express这3个选项:
并添加核显声卡(在核显编号后面),然后编辑虚拟机配置文件,做如下调整:
vim /etc/pve/qemu-server/102.conf
其实就是在hostpci0后面增加romfile=vbios_1638.bat,hostpci1后面增加romfile=AMDGopDriver.rom。修改后的虚拟主机硬件情况如下:
然后开始安装系统,安装完不要先安装显卡驱动,推荐先安装RadeonResetBugFixService这个服务解决虚拟机关机后无法启动的问题(虽然安装了RadeonResetBugFixService偶尔也会出现无法启动,需要彻底关闭PVE才行)。
给电脑打好驱动后分辨率就正常了。从矿卡时代就陪我折腾的5600G,现在玩All-In-One也挺不错的,我真挺喜欢这个U的(因为这个U也重新认识了AMD):
因为我的电脑还有Tesla P4这张显卡,而且自己做了虚拟化授权,所以打算给Windows系统也分配一个。继续添加PCIe设备选择Tesla P4,然后启动虚拟机:
正常识别到了核显和Tesla P4:
然后给设备继续跑个分:分数还是不高,显卡分数仅3800:
转码方面 NVENC和VCN均支持 也就是说现在我的设备有3路转码芯片了(NVENCx2+VCNx1):
显示和声音均正常, 基本上可以作为Windows主机使用,偶尔会遇到蓝屏重启(可能是核显+独显虚拟化偶尔会出问题)。这就是PVE环境5600G核显直通并输出HDMI接口的介绍。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
艾格贝尔先生
校验提示文案
值友8974565270
校验提示文案
[已注销]
校验提示文案
值友8974565270
校验提示文案
不语小强
校验提示文案
墨玉如霜
校验提示文案
没事发发疯
校验提示文案
没事发发疯
校验提示文案
墨玉如霜
校验提示文案
不语小强
校验提示文案
值友8974565270
校验提示文案
值友8974565270
校验提示文案
艾格贝尔先生
校验提示文案
[已注销]
校验提示文案