PVE环境5600G核显直通并输出HDMI接口

2023-09-25 23:45:16 18点赞 115收藏 11评论

我的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两个目录:

PVE环境5600G核显直通并输出HDMI接口

GOP目录的文件是AMDGopDriver.efi,接下在命令行中打开edk2-BaseTools-win32目录,运行如下命令(自行修改AMDGopDriver.efi文件路径):

.EfiRom.exe -f 0x1002 -i 0xffff -e D:vbiosvbiosAMDGopDriver.efi

在AMDGopDriver.efi同目录下会生成一个AMDGopDriver.rom文件备用。

PVE环境5600G核显直通并输出HDMI接口

vBIOS目录有2个dat文件,在PVE中执行命令查看核显编号:

lspci -nnk | grep VGAPVE环境5600G核显直通并输出HDMI接口

确定应该用的是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 命令验证是否开启:

PVE环境5600G核显直通并输出HDMI接口

屏蔽开源显卡驱动,避免开机时显卡被系统加载:

#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:

PVE环境5600G核显直通并输出HDMI接口

新建完主机后,然后添加PCI设备。选择核显编号,勾选主GPU、ROM-Bar、PCI-Express这3个选项:

PVE环境5600G核显直通并输出HDMI接口

并添加核显声卡(在核显编号后面),然后编辑虚拟机配置文件,做如下调整:

vim /etc/pve/qemu-server/102.confPVE环境5600G核显直通并输出HDMI接口

其实就是在hostpci0后面增加romfile=vbios_1638.bat,hostpci1后面增加romfile=AMDGopDriver.rom。修改后的虚拟主机硬件情况如下:

PVE环境5600G核显直通并输出HDMI接口

然后开始安装系统,安装完不要先安装显卡驱动,推荐先安装RadeonResetBugFixService这个服务解决虚拟机关机后无法启动的问题(虽然安装了RadeonResetBugFixService偶尔也会出现无法启动,需要彻底关闭PVE才行)。

PVE环境5600G核显直通并输出HDMI接口

给电脑打好驱动后分辨率就正常了。从矿卡时代就陪我折腾的5600G,现在玩All-In-One也挺不错的,我真挺喜欢这个U的(因为这个U也重新认识了AMD):

因为我的电脑还有Tesla P4这张显卡,而且自己做了虚拟化授权,所以打算给Windows系统也分配一个。继续添加PCIe设备选择Tesla P4,然后启动虚拟机:

PVE环境5600G核显直通并输出HDMI接口

正常识别到了核显和Tesla P4:

PVE环境5600G核显直通并输出HDMI接口

然后给设备继续跑个分:分数还是不高,显卡分数仅3800:

PVE环境5600G核显直通并输出HDMI接口PVE环境5600G核显直通并输出HDMI接口

转码方面 NVENC和VCN均支持 也就是说现在我的设备有3路转码芯片了(NVENCx2+VCNx1):

PVE环境5600G核显直通并输出HDMI接口

显示和声音均正常, 基本上可以作为Windows主机使用,偶尔会遇到蓝屏重启(可能是核显+独显虚拟化偶尔会出问题)。这就是PVE环境5600G核显直通并输出HDMI接口的介绍。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
11评论

  • 精彩
  • 最新
  • 请问一下,有人说5600g用虚拟机里面跑docker会出问题,你遇到没?

    校验提示文案

    提交
    我的5600G在PVE7.4里面跑docker,几个月没任何问题

    校验提示文案

    提交
    感谢

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 屏蔽开源显卡驱动,避免开机时显卡被系统加载,命令有点多了吧?一条就行了 [惊喜] [惊喜]

    校验提示文案

    提交
  • 牛牛牛牛牛

    校验提示文案

    提交
  • 大佬PVE哪个版本?

    校验提示文案

    提交
  • 5600g做aio有搞头么

    校验提示文案

    提交
  • 不错,好东西,值得收藏

    校验提示文案

    提交
  • 这台虚拟机关机后如何启动?需要借助其他机器来启动吗?还是就干脆不关机了

    校验提示文案

    提交
  • 感谢楼主

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
115
扫一下,分享更方便,购买更轻松