QRSK(I5-10500ES/不显)在PVE下开启GVT-G并直通给群晖人脸识别及emby硬解等
前言:埋坑
202509更新2.0
一、PVE的准备工作(以下均为博主自己实际情况,若能明白都是什么作用可自行按需调整)
1.开启iommu和GVT-g支持
编辑/etc/default/grub
将GRUB_CMDLINE_LINUX_DEFAULT="quiet"这一行修改成GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_gvt=1"修改完成后运行
update-grub2.加载直通内核模块
编辑/etc/modules
添加以下内容
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
kvmgt修完完成后运行
update-initramfs -u3.重启PVE验证GVT-G模型是否开启
终端输入以下命令查看是否出i915-GVTg_V5等模型,若没出现请检查BIOS是否开启虚拟化以及上述1、2步操作,若出现GVTG模型只有一个,可能是BIOS DVMT等值过小。详情可点击本文字参考其它博主介绍及操作
ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/ #换成自己的核显设备pcieID即为0000:00:02.0二、Q35模型+DSM7.2直通GVT-G,Synology Photos人脸识别及硬解等(在202508月后群晖新套件及系统版本中已废弃 详见第三A章节)
1、在PVE终端下操作
确保先复原任何过往在群晖做过的GVT-G或显卡直通等操作,在进行以下操作
依次输入以下内容,每行内容此处不做解释感兴趣可自行去了解一下
mkdir /var/lib/vz/snippets/
cp /usr/share/pve-docs/examples/guest-example-hookscript.pl /var/lib/vz/snippets/Dsm_i915-GVTg_V5_2.pl随后编辑/var/lib/vz/snippets/Dsm_i915-GVTg_V5_2.pl
然后在 pre-start部分,增加以下代码(此处核显设备ID和gvt模型请根据自己实际情况调整)
system("echo 9a5b4b67-bed5-4768-8af0-03ee9c227571 > /sys/devices/pci0000:00/0000:00:02.0/mdev_supported_types/i915-GVTg_V5_2/create");在 post-stop部分,增加以下代码(此处核显设备ID和根据自己实际情况调整)
system("echo 1 > /sys/devices/pci0000:00/0000:00:02.0/9a5b4b67-bed5-4768-8af0-03ee9c227571/remove");最终两处如下所示
pre-start处
if ($phase eq 'pre-start') {
# First phase 'pre-start' will be executed before the guest
# is started. Exiting with a code != 0 will abort the start
print "$vmid is starting, doing preparations.\n";
system("echo 9a5b4b67-bed5-4768-8af0-03ee9c227571 > /sys/devices/pci0000:00/0000:00:02.0/mdev_supported_types/i915-GVTg_V5_2/create");
# print "preparations failed, aborting."
# exit(1);
post-stop处
} elsif ($phase eq 'post-stop') {
# Last phase 'post-stop' will be executed after the guest stopped.
# This should even be executed in case the guest crashes or stopped
# unexpectedly.
print "$vmid stopped. Doing cleanup.\n";
system("echo 1 > /sys/devices/pci0000:00/0000:00:02.0/9a5b4b67-bed5-4768-8af0-03ee9c227571/remove");编辑群晖虚拟机配置文件vi /etc/pve/qemu-server/103.conf(此处103是博主自己的群晖虚拟机编号自行调整)
在最开始处添加以下内容,其余的请不要做任何修改(此处pciID显卡模型脚本名字请自行对应自己刚所设置的)
args: -device vfio-pci,addr=0x02,sysfsdev=/sys/devices/pci0000:00/0000:00:02.0/9a5b4b67-bed5-4768-8af0-03ee9c227571
hookscript: local:snippets/Dsm_i915-GVTg_V5_2.pl2、在群晖下操作
进入群晖web界面,进入控制面板-终端机和SNMP-勾选启用SSH-保存(所有步骤完成后可以回来关闭此选项)
进入控制面板-共享文件夹新建“nas-tmp”共享文件夹。完成后打开File Station找到刚才新建的“nas-tmp”右键属性查看位置并记下来。(例如博主这里是/volume1/nas-tmp)

随后打开群晖SSH终端
输入以下内容
使用管理员登陆
sudo -i
cp /usr/lib/modules/i915.ko /usr/lib/modules/i915.ko.bak #备份一下原来的,若后期复原自行复原
cp /usr/lib/modules/i915.ko /volume1/nas-tmp随后前往web面板中File Station,打开nas-tmp文件夹回看到一个i915.ko文件下载到windows电脑本地
使用SynologyVGPUTools工具修改刚才下载的文件i915.ko文件,博主这里的核显设备型号是9BC8(QRSK)完成后前往windows电脑的C盘找到I915.ko覆盖上传到刚才的“nas-tmp”文件夹
然后回到刚才的SSH终端接着输入以下内容
cp /volume1/nas-tmp/i915.ko /usr/lib/modules/
chmod 644 /usr/lib/modules/i915.ko完成上述操作后重启群晖自行检查人脸识别及硬解等
三A、最新人脸识别情况测试及参考
前言:废弃的第二章节那一步操作的本质目的 就是为了在pve中吧GVT-G模型核显调整到dsm虚拟机内020显卡位置
在 synology photo版本1.8.1 dsm版本7.2.2 型号ds918+测试情况是
1.核显在020的位置 可以识别人脸
2.核显不在020位置 也可以人脸识别
3.两次人脸识别数量不一致,所放图片一致(但图片一次全是JPEG,一次是PNG和JPG混合)
3a.这一轮测试中核显在020识别人脸更少 但是几乎无误判,反而不在020识别更多,但是有几张其实不一致吧但是近似 算误判
5.020位置时用的是jpg和png混合的图片,不在020用的是全JPEG格式
6.不确定图片格式是否造成人脸识别不一致的因素之一,以及是否每次环境变量一致人脸识别都是存在不一致情况,因此我没在测试了。我已经拿到了我想要的结果
存疑:
现今版本是否存在不需要核显一样人脸 不需要修改文件情况下 不需要特定机型 一样达到上面核显不在020位置的效果 因为本质改020就是告诉photo有核显(后续可能会在测试一下机型有无核显是否对人脸识别有影响吧)
个人结论:
结合我对群晖硬件发展历程等
我个人觉得在目前新版本状况下 可以忽略显卡在020的位置人脸识别影响(即在pve网页webui直接添加GVT-G模型即可)
以及大势所趋 可能未来群晖会不在将重心放在photo套件核显优化上
三、其他事项及参考文章等
参考链接及部分文件来源
Proxmox VE 虚拟群晖 gvt-g人脸识别解决方案 | VAY冬冬 笔记 (vay1314.top)
DS918+和DS920+群晖系统快速制作核显补丁的教程 - GXNAS博客
绕开BIOS限制修改显存使GVT-g实现更多vGPU_aperture size-CSDN博客
若其他一些细节未提及或其他问题可留言
评论区