(二)PVE Intel 11代及以上核显SRIOV虚拟化

准备工作

系统配置之前,检查下BIOS的这些功能是否正确开启

  • Intel VMX虚拟化技术 (需要开启)
  • VT-d (需要开启)
  • SR-IOV (需要开启)
  • IOMMU (需要开启)
  • VMD setup menu (需要关闭)

开启 BIOS 相关选项以畅网工控机演示

1
2
3
Advanced - CPU Configuration - Intel (VMX) Virtualization Technology - Enabled
Chipset - System Agent (SA) Configuration - VT-d - Enabled
Chipset - System Agent (SA) Configuration - Above 4GB MMIO BIOS assignment - Enabled

Intel 11 代及以上 SR-IOV 核显虚拟化

安装所需版本的内核和头文件

  • 查看内核版本
1
uname -a
  • i915-sriov-dkms目前支持6.8-6.13内核,根据uname-a反馈信息调整 header 的版本信息
  • 下载安装 headers
1
2
3
4
5
6
7
apt update && apt install pve-headers-$(uname -r)

# 如果遇到报错,执行以下命令
apt install proxmox-headers-6.8 proxmox-kernel-6.8对于未签名的内核
- 后面这个-6.8与uname-a返回的内核大版本号一致

这条命令的目的是为了确保安装了与当前系统内核版本匹配的Proxmox VE内核头文件,这对于确保系统上的某些软件或工具能够正确编译和与内核交互是非常重要的
  • 重启PVE使其生效
1
reboot
  • 安装构建工具dkms
1
apt install -y build-* dkms
1
wget -O /root/i915-sriov-dkms_2025.02.03_amd64.deb "https://github.ixin.top/https://github.com/strongtz/i915-sriov-dkms/releases/download/2025.02.03/i915-sriov-dkms_2025.02.03_amd64.deb"
1
wget -O /root/intel-i915-dkms_1.24.1.19.240119.1.nodrm+i6-1_all.deb "https://github.ixin.top/https://github.com/moetayuko/intel-gpu-i915-backports/releases/download/I915MT65-24.1.19-6/intel-i915-dkms_1.24.1.19.240119.1.nodrm+i6-1_all.deb"
  • 下载其中一个软件包驱动即可不要两个都安装可能会出现问题
  • i915-sriov-dkms和intel-gpu-i915-backports软件包驱动说明
1
2
3
4
5
6
7
8
9
10
11
i915-sriov-dkms软件包驱动说明:
* 用于 Gen 11 (如 i5-1135G7 的 Iris Xe 核显)、Gen12 (如 i7-1270p 的 Iris Xe 核显)及 Gen 13 (如 i5-13400 的 UHD 730 核显) SR-IOV
* 部分 Gen 11 核显 SR-IOV 失败可尝试使用 intel-gpu-i915-backports 驱动
内核要求:适用于 PVE 6.1.0-1 ~ 6.2.9-1、 6.5.13-3-pve ~ 6.8.12-1 的内核

intel-gpu-i915-backports软件包驱动说明:
* 用于 Intel 11 代及以后各代核显直接使用 PVE 硬件解码、转码
* 用于 Intel 11 代及以后各代核显 SR-IOV 后分配 VFs 给虚拟群晖并在虚拟系统中调用 VF 实现硬件转码及解码;
* 用于部分 Gen 11 核显 SR-IOV 后分配 VFs 给虚拟 Windows 并在虚拟系统中调用 VF 实现硬件转码及解码;
* 不能用于 Gen12,如 i7-1270p 的 Iris Xe 核显或 Gen 13,如 i5-13400 的 UHD 730 核显 SR-IOV 后分配 VFs 给虚拟 Windows 并在虚拟系统中调用 VF 实现硬件转码及解码;
内核要求:待数据反馈
  • 使用 dpkg 安装 deb软件包
1
2
3
4
5
#i915-sriov-dkms软件包驱动复制以下命令安装:
dpkg -i i915-sriov-dkms_2025.02.03_amd64.deb

#intel-gpu-i915-backports软件包驱动复制以下命令安装:
dpkg -i intel-i915-dkms_1.24.1.19.240119.1.nodrm+i6-1_all.deb
  • 检查安装是否成功
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 输入以下命令检查是否成功
modinfo i915|grep vf

# 反馈如下表示成功
parm: max_vfs:Limit number of virtual functions to allocate. (0 = no VFs [default]; N = allow up to N VFs) (uint)

# 如无反馈则安装失败,输入以下命令卸载此软件包
#i915-sriov-dkms软件包驱动复制以下命令卸载:
apt-get purge i915-sriov-dkms

#intel-gpu-i915-backports软件包驱动复制以下命令卸载:
apt-get purge intel-i915-dkms

# 输入以下命令重新安装(直至有成功信息反馈为止)
#i915-sriov-dkms软件包驱动复制一下命令重新安装:
dpkg -i i915-sriov-dkms_2025.02.03_amd64.deb

#intel-gpu-i915-backports软件包驱动复制以下命令重新安装:
dpkg -i intel-i915-dkms_1.24.1.19.240119.1.nodrm+i6-1_all.deb
  • 设置直通和i915控制器
1
2
3
4
5
# 编辑 grub 配置文件
nano /etc/default/grub
- 在 quiet 后添加 intel_iommu=on i915.enable_guc=3 i915.max_vfs=7 module_blacklist=xe

# ctrl+x y 回车保存退出
  • 更新grub和initramfs
1
update-grub && update-initramfs -u
  • 新增所需模块
1
2
3
4
5
6
7
nano /etc/modules
修改文件/etc/modules,加入如下的行
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

  • 更新initramfs
1
update-initramfs -u -k all
  • 安装sysfsutils(对新手友好方便对VF核显数量设置)
1
2
3
apt install -y sysfsutils

不建议使用开机自启脚本rc.local,增加不必要的风险
  • 设置SRIOV核显数量
1
2
3
4
5
echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 3" > /etc/sysfs.conf

命令中00:02是你GPU所在的PCIe设备ID。如果不是,请使用 lspci | grep VGA 查找您的GPU所在的PCIe设备ID
命令中sriov_numvfs = 3 代表SRIOV核显数量,可自定义设定,最多设置7个
设置为1个性能最强,如果设置为7个,那么每一个的性能只有14%(所以这里大家根据自身核显性能自行考量)
  • 重启使其生效
1
reboot
  • 重启完之后检查是否成功
  • 通过PVE节点的Shell输入以下命令查看SRIOV核显直通是否成功
1
lspci | grep VGA
  • 如果成功则会输出以下数据
1
2
3
4
5
6
00:02.0 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
00:02.1 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
00:02.2 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
00:02.3 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
00:02.4 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
00:02.5 VGA compatible controller: Intel Corporation AlderLake-S GT1 (rev 0c)
  • 00:02.x VGA 这就是刚刚虚拟出来的核显了
  • ⚠️注意:物理核显02.0不能直通出去(可以映射给LXC),否则物理核显本体被独占,所有虚拟核显消失。

PVE内核升级重装驱动教程

安装所需版本的内核和头文件

  • 查看内核版本
1
uname -a
  • i915-sriov-dkms目前支持6.8-6.13内核,根据uname-a反馈信息调整 header 的版本信息
  • 下载安装 headers
1
2
3
4
5
6
7
apt update && apt install pve-headers-$(uname -r)

# 如果遇到报错,执行以下命令
apt install proxmox-headers-6.8 proxmox-kernel-6.8对于未签名的内核
- 后面这个-6.8与uname-a返回的内核大版本号一致

这条命令的目的是为了确保安装了与当前系统内核版本匹配的Proxmox VE内核头文件,这对于确保系统上的某些软件或工具能够正确编译和与内核交互是非常重要的
  • 重启PVE使其生效
1
reboot
  • 查看i915-sriov-dkms驱动版本
1
2
3
4
5
6
7
8
9
10
11
# 查看所有已安装的软件包
dpkg -l

# 查找名为 i915-sriov-dkms 的软件包
dpkg -l | grep i915-sriov-dkms

# 查看 i915-sriov-dkms 软件包的详细信息
dpkg -s i915-sriov-dkms

# 或者使用 apt 命令查看 i915-sriov-dkms 软件包的详细信息
apt show i915-sriov-dkms
  • 卸载i915-sriov-dkms驱动
1
apt-get purge i915-sriov-dkms
  • 重新安装i915-sriov-dkms驱动新版本
1
dpkg -i i915-sriov-dkms_2025.02.03_amd64.deb
  • 检查安装是否成功
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 输入以下命令检查是否成功
modinfo i915|grep vf

# 反馈如下表示成功
parm: max_vfs:Limit number of virtual functions to allocate. (0 = no VFs [default]; N = allow up to N VFs) (uint)

# 如无反馈则安装失败,输入以下命令卸载此软件包
#i915-sriov-dkms软件包驱动复制以下命令卸载:
apt-get purge i915-sriov-dkms

#intel-gpu-i915-backports软件包驱动复制以下命令卸载:
apt-get purge intel-i915-dkms

# 输入以下命令重新安装(直至有成功信息反馈为止)
#i915-sriov-dkms软件包驱动复制一下命令重新安装:
dpkg -i i915-sriov-dkms_2025.02.03_amd64.deb

#intel-gpu-i915-backports软件包驱动复制以下命令重新安装:
dpkg -i intel-i915-dkms_1.24.1.19.240119.1.nodrm+i6-1_all.deb
  • 检查安装成功后重启reboot
  • 这样就完成了内核升级后重新安装驱动的全部流程