pve-open-sr-iov
PVE 开启 Intel 核显 SR-IOV 完整指南
补充说明
本文档记录在 Proxmox VE 环境下,为 Intel 11/12/13/14 代核显开启 SR-IOV(Single Root I/O Virtualization)的完整操作流程。SR-IOV 允许将物理核显划分为多个虚拟功能(VF),直接分配给不同的虚拟机使用。
前置条件
| 条件 | 说明 |
|---|---|
| 系统要求 | Proxmox VE (PVE) |
| 硬件要求 | Intel 11/12/13/14 代核显 |
| 网络要求 | 能访问 GitHub(用于下载驱动) |
| 权限要求 | root 权限 |
一键脚本
bash <(curl -sL gitee.com/meimolihan/linux-command_sh/raw/master/pve_install_sr-iov.sh)
脚本功能概览
| 模块 | 功能 | 说明 |
|---|---|---|
| 内核管理 | 查看内核版本 | 显示当前 PVE 内核版本 |
| 查看可用内核 | 列出可安装的 PVE 内核 | |
| 安装内核并固化 | 安装指定内核并设为默认启动 | |
| 重启应用新内核 | 重启系统使新内核生效 | |
| SR-IOV 管理 | 修改 GRUB 参数 | 配置内核引导参数 |
| 安装 i915 SR-IOV 驱动 | 自动下载并安装 strongtz 驱动 | |
| 更新 initramfs | 更新初始化内存盘 | |
| 检查 SR-IOV 状态 | 查看 PF/VF 设备和 DKMS 状态 | |
| 其他 | 查看核显使用率 | 实时监控 GPU 使用情况 |
| PVE 优化脚本 | 运行社区优化工具 |
快速开始
第一步:确认系统环境
ls /var/lib/vz/template/iso # 存在此目录说明是 PVE
pveversion
uname -r
第二步:修改 GRUB 引导参数
sed -i 's/^GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT="quiet iommu=pt i915.enable_guc=3 i915.max_vfs=7"/' /etc/default/grub
update-grub
参数说明:
| 参数 | 作用 |
|---|---|
iommu=pt |
开启 IOMMU 直通模式 |
i915.enable_guc=3 |
启用 GuC/HuC 固件 |
i915.max_vfs=7 |
最大虚拟功能数量 |
第三步:安装 i915 SR-IOV 驱动
# 安装依赖
apt update && apt install -y jq curl wget pve-headers-$(uname -r)
# 自动获取最新版本号
VER=$(curl -sL https://github.com/strongtz/i915-sriov-dkms/releases/latest | grep -E 'tag/[^"]+' -o | head -n1 | sed 's/tag\///')
# 下载最新deb包
wget "https://github.com/strongtz/i915-sriov-dkms/releases/download/${VER}/i915-sriov-dkms_${VER}_amd64.deb"
# 安装
dpkg -i "i915-sriov-dkms_${VER}_amd64.deb"
# 修复依赖
apt install -fy
# 清理安装包
rm -f "i915-sriov-dkms_${VER}_amd64.deb"
第四步:更新 initramfs 并重启
update-initramfs -u -k all
reboot
第五步:验证 SR-IOV 状态
# 查看 PF(物理功能)
lspci -nn | grep -i 'HD Graphics'
# 查看 VF(虚拟功能)
lspci -nn | grep -iE 'HD Graphics.*Virtual Function|8086:56[0-9a-f]'
# 查看 DKMS 状态
dkms status | grep i915
# 查看 VF 数量
cat /sys/class/drm/card0/device/sriov_numvfs
cat /sys/class/drm/card0/device/sriov_totalvfs
虚拟机配置
创建虚拟机时添加 PCI 设备:
qm set <VM_ID> -hostpci0 <VF_BDF>,pcie=on
# 示例:将 VF 00:10.0 分配给 VM 100
qm set 100 -hostpci0 00:10.0,pcie=on
Web 界面操作:选择虚拟机 → 硬件 → 添加 → PCI 设备 → 选择 VF → 勾选 PCI-Express 和所有功能。
支持的内核版本
| PVE 版本 | 内核版本 | SR-IOV 支持 |
|---|---|---|
| PVE 7.x | 5.15.x | 有限支持 |
| PVE 8.0 | 6.2.x | 良好支持 |
| PVE 8.1 | 6.5.x | 完全支持 |
| PVE 8.2 | 6.8.x | 完全支持 |
常见问题
Q:安装驱动时提示无法获取最新版本?
网络问题或 GitHub API 限制。可设置代理 export https_proxy=http://代理地址:端口 或手动从 strongtz/i915-sriov-dkms/releases 下载 DEB 包。
Q:内核头文件安装失败?
apt update
apt install -y pve-headers-$(uname -r)
# 或安装全部头文件
apt install -y pve-headers
Q:重启后 VF 未生效?
cat /proc/cmdline # 检查内核参数
update-grub # 重新配置 GRUB
proxmox-boot-tool refresh # UEFI 环境需刷新引导
Q:DKMS 编译失败?
dkms status
cat /var/lib/dkms/i915-sriov-dkms/build/make.log
apt install -y pve-kernel-6.2.16-20-pve # 尝试降级内核
proxmox-boot-tool kernel pin 6.2.16-20-pve
reboot
Q:检测不到 VF 设备?
echo 7 > /sys/class/drm/card0/device/sriov_numvfs # 手动启用
cat /sys/class/drm/card0/device/sriov_totalvfs # 若返回 0 说明硬件不支持
参考资料
安全提示
操作前请备份重要数据,建议先在测试环境验证,生产环境操作请选择维护窗口,确保有应急恢复方案(如 IPMI / 远程管理卡)。