11代是Rocket Lake的,不支持sriov。因为没驱动,也不支持GVT-g,
内核要求
在Linux 6.1内核加入了大量对11-13代的更新,要正常使用11-13代,建议更新至内核6.1。如果要使用核显SRIOV,务必更新到6.1内核
请参考文章佛西博客 – Proxmox VE 内核kernel (buduanwang.vip),安装内核和headers
添加PVE 无订阅源之后,可以从apt安装内核。如果是新手没有安装无订阅源,请参考文章佛西博客 – PROXMOX国内源设置教程 (buduanwang.vip)
下面是一个快速安装pve 6.1内核的例子
- wget http://mirrors.ustc.edu.cn/proxmox/debian/dists/bullseye/pve-no-subscription/binary-amd64/pve-kernel-6.1.6-1-pve_6.1.6-1_amd64.deb
- wget http://mirrors.ustc.edu.cn/proxmox/debian/dists/bullseye/pve-no-subscription/binary-amd64/pve-headers-6.1.6-1-pve_6.1.6-1_amd64.deb
- wget https://mirrors.ustc.edu.cn/proxmox/debian/dists/bullseye/pve-no-subscription/binary-amd64/pve-firmware_3.6-3_all.deb
- dpkg -i pve-kernel-6.1.6-1-pve_6.1.6-1_amd64.deb
- dpkg -i pve-headers-6.1.6-1-pve_6.1.6-1_amd64.deb
- dpkg -i pve-firmware_3.6-3_all.deb
或者
- apt install -y pve-kernel-6.1.6-1-pve pve-headers-6.1.6-1-pve pve-firmware
安装内核之后,建议重启。也可以不重启,但是如果你不知道怎么做,还是建议重启。
重启使用命令验证uname -r 是否是6.1内核。如果不是,我也不知道怎么办了。
安装SRIOV驱动
安装一些包
- apt install -y build-* git unzip dkms
下载驱动包
- wget https://mirrors.apqa.cn/d/proxmox-edge/intel_gpu_sriov/i915-sriov-dkms-6.1.zip
- unzip i915-sriov-dkms-6.1.zip
编译驱动
- cd i915-sriov-dkms-6.1/
- dkms add .
- dkms install i915-sriov-dkms/6.1
注意这个驱动是经过处理的,也可以直接使用git仓库下的驱动strongtz/i915-sriov-dkms (github.com)
正常来说,驱动是会编译完成的。
更新firmware
pve的i915中的firmware可能会缺少,建议下载我收集的firmware
- wget https://mirrors.apqa.cn/d/proxmox-edge/intel_gpu_sriov/i915-firmware.tar.gz
- tar -xf i915-firmware.tar.gz
- cp ./firmware/* /lib/firmware/i915/
修改grub
像添加直通一下,在/etc/default/grub中添加intel_iommu=on i915.enable_guc=7 ,添加好了之后,使用update-grub 更新引导。
添加开机启动Sriov脚本
- echo ‘#!/bin/bash’ >>/etc/rc.local
- echo “echo 7 > /sys/devices/pci0000:00/0000:00:02.0/sriov_numvfs” >>/etc/rc.local
- chmod +x /etc/rc.local
注意,这里是开启7个vf,如果你想开2个vf,就改成2。
重启主机验证
经过这样的步骤,重启之后,使用lspci,可以看到多个0000:00:02设备。即代表成功。,如果要直通,按照正常的直通流程就行。
虚拟机要求
对于虚拟机配置,要求为OVMF+Q35配置。如果需要解码。请将虚拟机的显卡设置成无。对于Windows虚拟机,也需要将显卡设置无才能正常驱动。
对于虚拟机内部,有如下要求:
Linux虚拟机
内核建议在5.15以上,需要安装intel的xe专用驱动,或者和PVE主机一样的SRIOV驱动,也就是按照之前的步骤,安装驱动。
下面是一个基于Ubuntu jammy的安装步骤的例子,请大家看下,了解流程。
更换源
- cat << EOF > /etc/apt/sources.list
- deb https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
- deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
- deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
- deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
- EOF
安装intel源
- DEBIAN_FRONTEND=noninteractive apt-get install -y gpg-agent wget
- wget -qO – https://repositories.intel.com/graphics/intel-graphics.key | sudo gpg –dearmor –output /usr/share/keyrings/intel-graphics.gpg
- echo ‘deb [arch=amd64 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/graphics/ubuntu jammy legacy’ | sudo tee /etc/apt/sources.list.d/intel.gpu.jammy.list
- apt update
安装合适的内核
建议是5.15内核,且高于5.15.0-48-generic。因为这个内核是有成功的例子。可使用uname -r 查看当前内核版本。
这里有两种情况
如果你的内核高于这个内核,直接安装headers
- DEBIAN_FRONTEND=noninteractive apt-get install -y linux-headers-`uname -r`
如果你的内核低于5.15.0-48-generic,可以安装5.15.0-48-generic的内核
- DEBIAN_FRONTEND=noninteractive apt-get install -y linux-image-5.15.0-48-generic linux-headers-5.15.0-48-generic
安装之后,重启,再使用`uame -r`确认,是否已经是5.15.0-48-generic内核。
安装intel驱动
- DEBIAN_FRONTEND=noninteractive apt-get install -y intel-platform-vsec-dkms intel-platform-cse-dkms
- DEBIAN_FRONTEND=noninteractive apt-get install -y intel-i915-dkms intel-fw-gpu
安装相关软件包
- apt-get install -y \
- intel-opencl-icd intel-level-zero-gpu level-zero \
- intel-media-va-driver-non-free libmfx1 libmfxgen1 libvpl2 \
- libegl-mesa0 libegl1-mesa libegl1-mesa-dev libgbm1 libgl1-mesa-dev libgl1-mesa-dri \
- libglapi-mesa libgles2-mesa-dev libglx-mesa0 libigdgmm12 libxatracker2 mesa-va-drivers \
- mesa-vdpau-drivers mesa-vulkan-drivers va-driver-all vainfo
安装firmware
同时需要确保有i915针对你核显的firmware。
- apt install -y linux-firmware
- wget https://mirrors.apqa.cn/d/proxmox-edge/intel_gpu_sriov/i915-firmware.tar.gz
- tar -xf i915-firmware.tar.gz
- cp ./firmware/* /lib/firmware/i915/
修改grub
像添加直通一下,在/etc/default/grub中添加i915.enable_guc=3 console=ttyS0 ,
grub取消注释GRUB_TERMINAL=console。
修改好了之后,使用update-grub 更新引导。
重启
重启之后ls /dev/dri 应该可以看到视频设备,使用命令vainfo 可以看到vaapi相关编解码器。那么这里博主做了一个Ubuntu的整合包下载地址为https://mirrors.apqa.cn/d/proxmox-edge/sysimages/Linux/ubuntu/cloud/vzdump-qemu-104-ubuntu-jammy-xe-sriov.vma.zst请将此文件下载之后,传到pve的/var/lib/vz/dump 目录,或者其他目录。在pve的web界面,选择还原,即可创建一个整合了i915最新驱动的Ubuntu系统。
这个虚拟机备份,是基于cloud-init,默认的账号密码为root/bingsin。你可以进系统后更改密码,或者使用cloud-init方式更改密码。
也请使用xtermjs,串口访问虚拟机。
Linux虚拟机使用pve内核–不适用全部情况
下面是一个快速安装pve 6.1内核的例子
- wget http://mirrors.ustc.edu.cn/proxmox/debian/dists/bullseye/pve-no-subscription/binary-amd64/pve-kernel-6.1.6-1-pve_6.1.6-1_amd64.deb
- wget http://mirrors.ustc.edu.cn/proxmox/debian/dists/bullseye/pve-no-subscription/binary-amd64/pve-headers-6.1.6-1-pve_6.1.6-1_amd64.deb
- wget https://mirrors.ustc.edu.cn/proxmox/debian/dists/bullseye/pve-no-subscription/binary-amd64/pve-firmware_3.6-3_all.deb
- dpkg -i pve-kernel-6.1.6-1-pve_6.1.6-1_amd64.deb
- dpkg -i pve-headers-6.1.6-1-pve_6.1.6-1_amd64.deb
- dpkg -i pve-firmware_3.6-3_all.deb
更新firmware
pve的i915中的firmware可能会缺少,建议下载我收集的firmware
- wget https://mirrors.apqa.cn/d/proxmox-edge/intel_gpu_sriov/i915-firmware.tar.gz
- tar -xf i915-firmware.tar.gz
- cp ./firmware/* /lib/firmware/i915/
修改grub
像添加直通一下,在/etc/default/grub中添加i915.enable_guc=3 console=ttyS0 ,添加好了之后,使用update-grub 更新引导。
grub取消注释GRUB_TERMINAL=console
安装SRIOV驱动
安装一些包
- apt install -y build-* git unzip dkms
下载驱动包
- wget https://mirrors.apqa.cn/d/proxmox-edge/intel_gpu_sriov/i915-sriov-dkms-6.1.zip
- unzip i915-sriov-dkms-6.1.zip
编译驱动
- cd i915-sriov-dkms-6.1/
- dkms add .
- dkms install i915-sriov-dkms/6.1
重启
Linux 排错
如果没有出现renderD128,那么请使用命令dmesg|grep i915获取日志。
Windows虚拟机
在必须满足虚拟机配置的前提下,安装当前最新的驱动,下面2个,二选一自行测试。
英特尔® Arc™ 和锐®炬® Xe 显卡 – BETA – Windows* (intel.cn)
英特尔® Arc™ 和锐炬® Xe 显卡 – WHQL – Windows* (intel.cn)
安装之后,使用软件方式查看。
至此11-12-13代Sriov教程结束。