环境信息
CPU: i3-12300T (核显UHD730)
PVE:8.2.4
Kernel: 6.8.12-1
BIOS设置
开启VT-d
开启VT-x
开启IOMMU
开启SR-IOV
调整内核至6.5.13-3
因为需要编译i915-sriov-dkms 这个内核相关的项目
在不同的内核编译会出现兼容性问题
比如我试过当前的6.8.12,使用pve_source工具可以分出来,但是pve虚拟机ubuntu22.04.4 LTS使用的内核为5.15.0-118内核则无法分出/dev/dri。(主要还是自己没设置好,索性降级kernel重来了。
这次试试6.5.13-3内核上编译安装i915-sriov-dkms项目
查看当前安装的内核
1 | root@pve:~# proxmox-boot-tool kernel list |
6.8.12是安装pve 8.2.4版本后自动安装,参考i915-sriov-dkms项目的readme文件是支持6.8的内核的,但网友也有很多错误。
移除不需要的内核版本
1 | apt purge proxmox-kernel-6.x.x-x-pve |
安装6.5.13-3版本内核
1 | root@pve:~# apt install proxmox-kernel-6.5.13-3-pve |
锁定内核版本
1 | proxmox-boot-tool kernel pin 6.5.13-3-pve |
重启
先删除原来的
1 | rm -rf /var/lib/dkms/i915-sriov-dkms |
正文开始
注意若进行过内核版本升级,请执行此处命令重新安装内核和内核头并切换,以避免虚拟化失败,若未升级过请忽略
1 | apt install pve-kernel-$(uname -r) |
下载需要的deb包,无法下载可点击此处下载后上传i915
1 | wget https://github.com/MoetaYuko/intel-gpu-i915-backports/releases/download/I915MT65-24.1.19-3/intel-i915-dkms_1.24.1.19.240119.1.nodrm+i3-1_all.deb |
下载依赖包
1 | apt install flex bison |
安装header
1 | apt update & apt install build-* pve-headers-$(uname -r) git dkms sysfsutils flex bison -y |
下载i915所需二进制文件
1 | mkdir -p /lib/firmware/updates/i915/ |
安装deb包
1 | sudo dpkg -i intel-i915-dkms_1.24.1.19.240119.1.nodrm+i3-1_all.deb |
出现以下信息即说明安装成功
编辑 grub 配置文件
1 | nano /etc/default/grub |
在 quiet 后添加 intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7
键盘组合键ctrl+x再输入y 回车保存退出
更新grub和initramfs
1 | update-grub |
安装sysfsutils(对新手友好方便对VF核显数量设置)
1 | apt install -y sysfsutils |
下面命令中sriov_numvfs = 5的5代表SRIOV核显数量,可自定义设定,最多设置7个设置为1个性能最强,如果设置为7个,那么每一个的性能只有14%(所以这里大家根据自身核显性能自行考量)
按照需求划分,我1个ubantu2个桌面,一共三个
1 | echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 3" > /etc/sysfs.conf |
重启pve,使配置生效
验证。出现以下信息说明安装成功,可以进行后续直通操作
1 | lspci | grep VGA |