环境信息
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项目
查看当前安装的内核
root@pve:~# proxmox-boot-tool kernel list
Manually selected kernels:
None.
Automatically selected kernels:
6.8.12-1-pve
6.8.4-2-pve
Pinned kernel:
6.8.12-1-pve
6.8.12是安装pve 8.2.4版本后自动安装,参考i915-sriov-dkms项目的readme文件是支持6.8的内核的,但网友也有很多错误。
移除不需要的内核版本
apt purge proxmox-kernel-6.x.x-x-pve
安装6.5.13-3版本内核
root@pve:~# apt install proxmox-kernel-6.5.13-3-pve
锁定内核版本
proxmox-boot-tool kernel pin 6.5.13-3-pve
重启
先删除原来的
rm -rf /var/lib/dkms/i915-sriov-dkms
正文开始
注意若进行过内核版本升级,请执行此处命令重新安装内核和内核头并切换,以避免虚拟化失败,若未升级过请忽略
apt install pve-kernel-$(uname -r)
proxmox-boot-tool kernel pin $(uname -r)
apt install pve-headers-$(uname -r)
下载需要的deb包,无法下载可点击此处下载后上传i915
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
下载依赖包
apt install flex bison
安装header
apt update & apt install build-* pve-headers-$(uname -r) git dkms sysfsutils flex bison -y
下载i915所需二进制文件
mkdir -p /lib/firmware/updates/i915/
wget -O /lib/firmware/updates/i915/tgl_guc_70.9.1.bin https://mirror.ghproxy.com/https://raw.githubusercontent.com/intel-gpu/intel-gpu-firmware/main/firmware/tgl_guc_70.9.1.bin
安装deb包
sudo dpkg -i intel-i915-dkms_1.24.1.19.240119.1.nodrm+i3-1_all.deb
出现以下信息即说明安装成功
编辑 grub 配置文件
nano /etc/default/grub
在 quiet 后添加 intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7
键盘组合键ctrl+x再输入y 回车保存退出
更新grub和initramfs
update-grub
update-initramfs -u
安装sysfsutils(对新手友好方便对VF核显数量设置)
apt install -y sysfsutils
下面命令中sriov_numvfs = 5的5代表SRIOV核显数量,可自定义设定,最多设置7个设置为1个性能最强,如果设置为7个,那么每一个的性能只有14%(所以这里大家根据自身核显性能自行考量)
按照需求划分,我1个ubantu2个桌面,一共三个
echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 3" > /etc/sysfs.conf
----------------
#有修改虚拟核显数量的需求
nano /etc/sysfs.conf
#将原来写入的参数注释掉
#devices/pci0000:00/0000:00:02.0/sriov_numvfs = 3
#改成你需要的数量,例如下述为5个
devices/pci0000:00/0000:00:02.0/sriov_numvfs = 5
重启pve,使配置生效
验证。出现以下信息说明安装成功,可以进行后续直通操作
lspci | grep VGA