当前位置:首页 > 技术教程 > 正文

[我的NAS+HTPC折腾之旅]篇十六:PVE安装DSM7.0.1实现核心显卡解码

上一篇介绍了PVE下安装openwrt软路由的基本方法,这一篇算是进阶教程,要讲硬盘直通和独立显卡调用。篇幅原因,创建虚拟机的过程我简单带过,重点讲直通。

创建虚拟机,我这里编号101,朋友们根据自身情况修改。

[我的NAS+HTPC折腾之旅]篇十六:PVE安装DSM7.0.1实现核心显卡解码  第1张我的DSM设置

内存我分了2048M,核心给了2个,网卡使用半虚拟化,新的DSM7.0直接支持,不需要改成E1000。

[我的NAS+HTPC折腾之旅]篇十六:PVE安装DSM7.0.1实现核心显卡解码  第2张新版引导支持Virtio网卡驱动,不需要改成E1000

分离并删掉默认的硬盘,删除光驱。

用WINSCP上传DSM7.0的引导img文件,上传完成后转成qcow2格式。

[我的NAS+HTPC折腾之旅]篇十六:PVE安装DSM7.0.1实现核心显卡解码  第3张上传DS918的引导文件,我最后放到百度网盘。

qemu-img convert -f raw -O qcow2 DS918_7.0.1-42218.img DS918_7.0.1-42218.qcow2

挂载硬盘到local-lvm

qm importdisk 101 /root/DS918_7.0.1-42218.qcow2 local-lvm

挂载后可以看到未使用硬盘,这里双击添加为sata硬盘,序号0。

直通硬盘

进入PVE的shell模式,查询PVE下挂载的硬盘。

ls /dev/disk/by-id

[我的NAS+HTPC折腾之旅]篇十六:PVE安装DSM7.0.1实现核心显卡解码  第4张找到自己需要直通的硬盘

这里列出的第一个日立硬盘就是我需要直通的硬盘,我们把这段代码复制到记事本上,下面要用。

然后把这块硬盘直通给刚才创建的DSM虚拟机,这里我的编号是101,大家根据自己的情况修改。

qm set 101 -sata1 /dev/disk/by-id/ata-Hitachi_HDS723030ALA640_MK0303YVGDZ5NC

[我的NAS+HTPC折腾之旅]篇十六:PVE安装DSM7.0.1实现核心显卡解码  第5张将这块硬盘设置成sata1,sata0号是引导盘

看到这条信息说明挂载上了。

ata后面这段是我的硬盘,大家根据自己的情况去修改。

[我的NAS+HTPC折腾之旅]篇十六:PVE安装DSM7.0.1实现核心显卡解码  第6张检查自己硬盘序号,如果有多块硬盘从sata2开始往后排。

因为引导比较新,这里还有两处需要修改,一个是机型要改成q35,选择最新即可。BIOS需要改成OVMF(UEFI),如果这两处不修改会出现DSM安装过程中找不到硬盘。

BIOS改成OVMF的过程中会提醒创建EFI分区,这里直接点确定,不要在分区这里选到local-lvm,不创建EFI硬盘分区。如果创建了硬盘分区会无法成功引导,如果创建了EFI分区要删除。按照我图片的设置去改应该就可以成功了。

选项——引导里把sata0也就是DSM的引导盘做为唯一的引导选项。

[我的NAS+HTPC折腾之旅]篇十六:PVE安装DSM7.0.1实现核心显卡解码  第7张引导的sata1硬盘设置成开机启动项

设置好以后开机,安装DSM7.0的过程我就不啰嗦了,固件这些我会放到百度网盘,安装过程网上很容易找。

第一次进去的时候选第二项,也就是带sata的那一项,然后浏览器里输入find.synology.com 安装群辉。

DSM调用核心显卡实现918硬件转码功能

启用intel核心显卡的GVT-g功能,这个功能说人话就是把intel的核心显卡变成多个虚拟的显卡,这些虚拟的显卡可以被PVE的虚拟机调用实现编解码。核心显卡和独立显卡的直通过程我会在下一篇中介绍,这里只介绍GVT-g的方式让群晖调用核心显卡转码。但是INTEL的GVT-G技术目前暂不支持HDMI输出,所以既要用核心显卡HDMI显示,另外还要给DSM转码暂时还实现不了,国外有大神利用USB转HDMI的设备实现看视频输出,具体技术细节大家自行研究。

首先,需要在主板的BIOS设置里把显卡调用设置成允许核心显卡和独立显卡同时工作,然后核心显卡调用显存设置到最大。我这个昂达H110主板可以给核心显卡分1G显存。因为主板情况各不相同,这一步大家自行研究。

进入PVE管理后台,打开shell,我们首先要打开主板的iommu功能和GVT-g的支持。

nano /etc/default/grub

在里面找到:GRUB_CMDLINE_LINUX_DEFAULT="quiet"

[我的NAS+HTPC折腾之旅]篇十六:PVE安装DSM7.0.1实现核心显卡解码  第8张修改grub

然后修改为:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on i915.enable_gvt=1"

然后保存,退出。

输入如下命令更新grub

update-grub

[我的NAS+HTPC折腾之旅]篇十六:PVE安装DSM7.0.1实现核心显卡解码  第9张更新grub

然后在/etc/modules中添加模块

echo vfio >> /etc/modules

echo vfio_iommu_type1 >> /etc/modules

echo vfio_pci >> /etc/modules

echo vfio_virqfd >> /etc/modules

echo kvmgt >> /etc/modules

然后输入cat /etc/modules确认是否添加

[我的NAS+HTPC折腾之旅]篇十六:PVE安装DSM7.0.1实现核心显卡解码  第10张添加模块

添加完成后更新

update-initramfs -u

[我的NAS+HTPC折腾之旅]篇十六:PVE安装DSM7.0.1实现核心显卡解码  第11张如图所示就更新完成了

更新完成后,重启主机。

reboot

[我的NAS+HTPC折腾之旅]篇十六:PVE安装DSM7.0.1实现核心显卡解码  第12张也可以在网页里重启

重启后,进入PVE的管理界面,选择DSM所在的虚拟机,硬件,添加PCI设备。

[我的NAS+HTPC折腾之旅]篇十六:PVE安装DSM7.0.1实现核心显卡解码  第13张添加PCE设备

我这里第一个就是intel的GPU

[我的NAS+HTPC折腾之旅]篇十六:PVE安装DSM7.0.1实现核心显卡解码  第14张这个地方根据自己显存的总数来选

需要注意主板给核心显卡分配的最大显存,提前做好规划,比如我DSM和WIN10都需要调用这个核心显卡,所以各自需要分最大512内存。第一次我分给DSM按照5.1给的,结果WIN10启动的时候显卡内存不够无法启动,后面按照DSM和WIN10都按5.4也就是都分配最大512内存才搞定。因为intel核心显卡主要用于转码,一般分给两个虚拟机用就可以了,GVT-g的方式据说可以达到原生的90%左右,已经很给力了,如果分再多的虚拟机效率下降就比较厉害了。

[我的NAS+HTPC折腾之旅]篇十六:PVE安装DSM7.0.1实现核心显卡解码  第15张图里我选的5.1,最后按照5.4做的

高级这里我没勾选,大家可以勾选下PCIE选项,我怕独立显卡直通失败,这里就没弄了。

显卡直通以后开启虚拟机,虚拟机正常引导以后使用ssh工具连上DSM确认DSM是否正常调用核心显卡。

我使用的工具是xshell,putty也可以,大家找个顺手的就行。

输入命令: ls /dev/dri

[我的NAS+HTPC折腾之旅]篇十六:PVE安装DSM7.0.1实现核心显卡解码  第16张输入ls /dev/dri

如果出现card0 renderD128就没问题了

[我的NAS+HTPC折腾之旅]篇十六:PVE安装DSM7.0.1实现核心显卡解码  第17张证明驱动被正常加载了

至此,DSM918调用核显的目的达成,人脸识别,硬件转码功能均需要特殊处理以后方可正常使用。DSM7.1暂未测试,DSM的进阶功能大家可以自行研究,下一篇讲WIN10下直通独立显卡,实现HDMI视频输出。