本文转载自云留月的技术小站—【PVE】All in One 的快乐之PVE系统配置及核显SRIOV直通
教程参考B站UP主爱折腾的老高,感谢大佬持续产出优秀折腾经验,吾辈楷模。
视频link:
畅网N100十二代低功
耗多网口小主机测评 开箱/拆解/烤机/温度/功耗/12代PVE安装简单避坑/SRIOV核显直通/硬解原笔记出处:
Intel 11(Tigerlake)/12/13/14代SRIOV vGPU虚拟核显直通应用
本教程使用的GIthub项目,欢迎给大佬们Star、Fork加鸡腿!
方案一:
https://github.com/moetayuko/intel-gpu-i915-backports
方案二:
https://github.com/strongtz/i915-sriov-dkms遇到编译问题时参考的解决方案:
https://github.com/strongtz/i915-sriov-dkms/issues/151
感谢makazeu 大佬提供的解决方案!感谢小云大佬提供的技术支持!!超棒棒哦!
再次感谢小云大佬提供N150/N200/N355测试数据(2025年2月)。感谢JAZZ大佬提供的超好用的PVE优化脚本支持以及核显调用查看方案!
警告⚠:未经许可禁止转载!
转载本文请注明出处,互联网开放精神,你我共享!
引言
- 有朋友问不想核显虚拟化,只想把核显直通给群晖SA6400转码和硬解使用,该怎么办,由于有现成一键脚本,故为了节约大家时间,在此推荐JAZZ大佬编写的一键脚本,作者已经验证过支持pve最新版,故不再另开新文。pve_source 工具下载
- 关于SRIOV 测试用的媒体服务器版本推荐

一、系统配置
1.1 配置前的准备
系统配置之前,检查下BIOS的这些功能是否正确开启,畅网N100/N305以及N150/N200/N355 默认开启:
- Intel VMX虚拟化技术 (需要开启)
- VT-d (需要开启)
- SR-IOV (需要开启)
- IOMMU (需要开启)
- VMD setup menu (需要关闭)
- Secure Boot(需要关闭)
1.2 安装PVE(略)
1.3 整合PVE存储空间(可选)
重要提醒:以下步骤误操作容易导致PVE崩溃,请在刚装完PVE系统后进行操作,不建议已经组好All in One的用户进行操作,后果自行承担!!
1.3.1 loacl和local-lvm两个分区合二为一
- 查询当前local的大小
/dev/mapper/pve-root这个是系统自动给local的空间- 进入到PVE节点的Shell输入以下命令(删除pve/data路径下的local-lvm逻辑卷)
- 输入完之后会提示是否确定删除,此时按y回车
- 继续输入以下命令(将所有系统盘可用空间全部交由local这一个逻辑卷分配)
- 继续输入以下命令(使其适应已经调整大小的逻辑卷)
- 查询是否扩容成功
- 成功扩容接下来删除local-lvm
点数据中心 ——> 存储 ——> local-lvm ——> 移除 ——> local ——> 编辑 ——> 内容(所有选项全部选上) ——> OK
1.4 PVE更换软件源
因为众所周知的原因,PVE无法连上国外的官方源,因此替换为国内的镜像源,以便更新相关软件。
太长不看版:
更新软件及内核:
执行完后可以直接跳到二、SRIOV步骤。
1.4.1 换国内源
- 备份PVE自带的软件包源文件
北方小伙伴选择清华大学源,南方小伙伴选择中科大源,二选一
1.4.2 换软件包源
- 进入到nano编辑器后,将每一行前面加上’#‘注释掉,例如下面这这样
键盘组合键ctrl+x再输入y 回车保存退出
键盘组合键ctrl+x再输入y 回车保存退出
1.4.3 编辑企业源
- 将其中原有的源前面 # 注释掉,变为:
- 北方添加清华源:
- 南方添加中科大源:
- 键盘组合键
ctrl+x再输入y回车保存退出
1.4.4 添加pve无订阅源
- 粘贴以下pve中科大的无订阅源
- 键盘组合键
ctrl+x再输入y回车保存退出
1.4.5 更新软件包
修复源401错误(如无401报错可忽略此条):
- 将其中原有的proxmox句首加 # 注释掉
- 添加中科大ceph源:
- 键盘组合键
ctrl+x再输入y回车保存退出 - 再次更新
1.4.6更换LXC容器源
中科大源和清华大学源二选一
- 备份PVE自带的LXC容器源文件
- 更换为中科大源:
- 更换为清华大学源:
- 重启pve管理进程(使所有更换的源文件生效)
卸载命令记录:
- 检查已安装的内核模块:在卸载DKMS模块之前,首先需要检查已安装的内核模块。可以使用dkms status命令查看已安装的DKMS模块列表。
- 卸载DKMS模块:要卸载一个DKMS模块,可以使用dkms uninstall -m 模块名称 -v 模块版本命令。替换“模块名称”和“模块版本”为实际的模块名称和版本号。
- 删除DKMS模块:在卸载DKMS模块之后,可以使用dkms remove -m 模块名称 -v 模块版本 –all命令来删除DKMS模块的所有版本。
- 清理内核模块:最后,可以使用sudo apt autoremove命令来清理系统中不再使用的内核模块。
二、方案一:SRIOV核显虚拟化(推荐,方案来源:畅网小云大佬,兼容PVE8.2 和 6.8内核)
注意此处若您进行过内核版本升级,请执行此处命令重新安装内核和内核头并切换,以避免虚拟化失败,若未升级过请忽略
经小云大佬测试,该项目目前已经支持N150/N200/N355。
- 下载需要的deb包,无法下载可点击此处下载后上传intel-i915-dkms
- 下载依赖包
- 安装header
- 下载i915所需二进制文件
如果挂了梯子导致上述下载命令失败:可以用这行命令下载 bin 文件
wget -O /lib/firmware/updates/i915/tgl_guc_70.9.1.bin https://github.com/intel-gpu/intel-gpu-firmware/blob/main/firmware/tgl_guc_70.9.1.bin
- 安装deb包
- 出现以下信息即说明安装成功

- 编辑 grub 配置文件
- 在
quiet后添加intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7 - 键盘组合键
ctrl+x再输入y回车保存退出 - 更新grub和initramfs
- 安装sysfsutils(对新手友好方便对VF核显数量设置)
不建议使用开机自启脚本rc.local,增加不必要的风险
下面命令中sriov_numvfs = 5的5代表SRIOV核显数量,可自定义设定,最多设置7个设置为1个性能最强,如果设置为7个,那么每一个的性能只有14%(所以这里大家根据自身核显性能自行考量)
- 重启pve,使配置生效
- 出现以下信息说明安装成功,可以进行后续直通操作
![]()


- 在创建好虚拟机后,修改在该虚拟机的config文件
- 第一行加上,固定GPU的PCI序号:

- 并且将虚拟机显示器设为
无或者VirtIO-GPU


- 安装Win虚拟机时需要勾选
主GPU选项,才能正确安装核显驱动,其他虚拟机按需勾选。

三、方案二:SRIOV核显虚拟化(方案一无效的情况下可尝试方案二)
理论来说,目前仅有Intel 11(Tigerlake)/12/13/14代带核显CPU支持SRIOV核显虚拟化,非此类CPU不能SRIOV虚拟化。
- 核显SRIOV优缺点对比

3.1 安装i915-sriov deb包(Update:2025/2)
3.1.1 安装 git工具 及 dkms
3.1.2 安装所需版本的内核和头文件:
3.1.3 下载 deb 包
- 本站直接下载:点击下载
- 或者直接从项目发布页下载
3.1.4 使用 dpkg命令 安装 deb 包
- 此命令行应用于上一个从发表页下载的命令,如果是直接从本站下载,需要将deb包手动放到
/tmp目录下。
3.2 设置直通和i915控制器
- 编辑 grub 配置文件
- 在
quiet后添加intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7 - 键盘组合键
ctrl+x再输入y回车保存退出 - 更新grub和initramfs
- 安装sysfsutils(对新手友好方便对VF核显数量设置)
不建议使用开机自启脚本rc.local,增加不必要的风险
3.3 设置SRIOV核显数量
下面命令中sriov_numvfs = 5的5代表SRIOV核显数量,可自定义设定,最多设置7个设置为1个性能最强,如果设置为7个,那么每一个的性能只有14%(所以这里大家根据自身核显性能自行考量)
假设您的 iGPU 在 00:02 总线上。如果没有,请使用 lspci | grep VGA 查找您的 iGPU 所在的 PCIe 总线。
- 重启使其生效
- 重启完之后检查是否成功
- 通过PVE节点的Shell输入以下命令查看SRIOV核显直通是否成功
如果成功则会输出以下数据
00:02.x VGA 这就是刚刚虚拟出来的核显了
注意:物理核显02.0不能直通出去(可以映射给LXC),否则物理核显本体被独占,所有虚拟核显消失。
本教程结束,接下来就可以按照自己的需求安装虚拟机了。
2025年2月之前的内容
锁定内核头文件headers(目前支持 6.1-6.8 内核版本,不再需要锁内核,此处仅记录锁内核命令,直接跳转到 3.2 进行下载安装即可,无需执行 3.1 命令)
- 查看内核版本
i915-sriov目前支持6.1~6.8内核,不再需要锁内核,此处只是记录锁内核的步骤
- 根据uname-a反馈信息调整 header 的版本信息
- 下载安装 headers,如果遇到报错,或以前执行过dkms安装都可执行以下命令
- 查看当前内核版本是否锁定为6.5.13-5
- 重启PVE使其生效
- clone代码库(下载源码时请保证能连接上github,修改dns可以连上,具体百度)
- 帮大家找到一个国内镜像代码库,已经做好了替换,图省事的同学拉取这个库直接跳到后文镜像库提示的地方。
目前已经支持到 6.8内核,无需执行这些步骤了
经过测试发现这里有个坑!!!6.5.13-5这个内核版本使用大佬的库直接编译的话会出以下报错:
- 如果下载失败可以点击此处下载intel_dp_mst.c
目前该项目已推荐采用deb安装,理论上来说按照如下步骤操作即可成功编译。
- 控制台输出如下结果

- 如果输出added则表示前期准备完成,

- 输入以下命令进行编译
- 输出

如果失败了可以先运行以下命令,然后回到
二、SRIOV核显虚拟化重新开始编译一次
- 检查安装是否成功
输入以下命令检查是否成功
反馈如下表示成功
parm: max_vfs:Limit number of virtual functions to allocate. (0 = no VFs [default]; N = allow up to N VFs) (uint)
四、飞牛 OS 系统SRIOV 核显驱动安装
注意:最近飞牛应用商城已经上线了i915驱动,直接安装即可。若不成功再教程执行。
本教程来自皮蛋熊大佬分享的驱动,感谢大佬的付出:群晖喂屎,飞牛出世,DG1有新去处了?-蔚然小站 (kkk.rs)
注意: 目前N150/N200/N355 飞牛官方/皮蛋熊大佬都还没有适配驱动,因此不支持SRIOV核显。
注意:
- 如果装好不能解码可以按上述在PVE 硬件显示部分加 VirtIO-GPU 虚拟GPU 试一下。
- 由于飞牛系统还处于公测阶段,每一次更新系统都需要按照上述步骤重新安装一次驱动。
五、效果预览
5.1 Windows 核显驱动

5.2 SA6400 EMBY转码(EMBY需要4.8版本才能支持)

5.3 SA6400 Jellyfin转码

查看核显调用情况的方法

5.4 转码时CPU使用率


5.5 飞牛转码效果


新憧憬








