PVE核显开启SR-IOV直通
# 环境信息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
```
出现以下信息即说明安装成功
!(data/attachment/forum/plugin_zhanmishu_markdown/202408/0ab66f78b371bbe0b4041208e618f1db_1724053561_5835.png)
编辑 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
```
!(data/attachment/forum/plugin_zhanmishu_markdown/202408/c006d3056ddd748ec6932958cedcfdb1_1724053561_3188.png)
页:
[1]