PVE环境下Intel核显SR-IOV虚拟化配置指南
PVE环境下Intel核显SR-IOV虚拟化配置指南
Intel核显的SR-IOV(Single Root I/O Virtualization)技术允许将物理GPU资源虚拟化分配给多个虚拟机,从而实现GPU资源的共享和复用。在Proxmox VE(PVE)环境中配置SR-IOV,可以为运行在虚拟机中的Windows 10系统提供图形加速能力,提升图形处理性能。本文将详细介绍在PVE中配置Intel核显SR-IOV并分配给Windows 10虚拟机的具体步骤。
前言
网上关于PVE Intel核显SR-IOV的教程不少,但是实践起来往往会有许多坑,于是霜狐亲自采了一遍坑,出了这个教程。
我使用的配置(12300T+微星h610m e)在这里有所介绍,如果配置不同请自行注意可能有需要修改的地方,此外建议先安装好pve_source脚本并完成优化。
2024我自用的AIO低功耗静音家庭服务器
前言 之前提到过,我购买了一台二手的DELL R730XD企业服务器改造家用,不过最终因为电费和噪音退坑了。 家庭……
[PVE]优化脚本pve_source推荐(换源-合并local-lvm-去订阅提示)
介绍: 对于新手来说,一行行敲命令来完成PVE换源,合并local-lvm,配置Web页面传感器,去除订阅提示等工作十分麻烦还易出错,因此推荐J……
硬件支持
这是个大坑!很多消费级硬件不支持SR-IOV。
请确保你的CPU是12代以后带核显的桌面端正式版CPU,ES版,笔记本版以及11代均不确定能否支持。
还有主版推荐华硕/微星两大一线,基本都支持SR-IOV,其他品牌未知,不过即使支持也记得一定在主板里打开SR-IOV选项!微星的H610M E默认就是关闭的,坑了我好久...
安装dkms驱动
安装dkms:
apt install dkms -y
再次感谢Jazz大佬帮忙整理好了核显 SR-IOV 驱动:
用于 Gen 11 (如 i5-1135G7 的 Iris Xe 核显)、Gen12 (如 i7-1270p 的 Iris Xe 核显)及 Gen 13 (如 i5-13400 的 UHD 730 核显) SR-IOV,部分 Gen 11 核显 SR-IOV 失败可尝试使用 intel-i915-dkms 驱动
内核要求:适用于 PVE 6.2.16-16 及以上且 6.8 以下的内核
使用方法: 首次安装需安装两次。 安装过程中动态编译时间较长,需耐心等待,安装完成后需重启系统。
wget -q -O '/root/i915-sriov-dkms_6.1.11_all(PVE_6.2.16-16+).deb' 'https://bbs.x86pi.cn/file/topic/2024-05-13/file/7f12279527104fb288c2383d4e141e0cb2.deb' && dpkg -i '/root/i915-sriov-dkms_6.1.11_all(PVE_6.2.16-16+).deb'
还有另一个(和上面那个根据自己硬件和内核选择一个安装即可):
用于 Gen 11 (如 i5-1135G7 的 Iris Xe 核显)、Gen12 (如 i7-1270p 的 Iris Xe 核显)及 Gen 13 (如 i5-13400 的 UHD 730 核显) SR-IOV,部分 Gen 11 核显 SR-IOV 失败可尝试使用 intel-i915-dkms 驱动
内核要求:适用于 PVE 6.2.16-15 及以下内核
使用方法:
首次安装需安装两次。
安装过程中动态编译时间较长,需耐心等待,安装完成后需重启系统。
wget -q -O '/root/i915-sriov-dkms_6.1.11_all(PVE_6.2.16-15-).deb' 'https://bbs.x86pi.cn/file/topic/2023-11-14/file/b14f8d40f19f4ec5a8878653950e3b24b2.deb' && dpkg -i '/root/i915-sriov-dkms_6.1.11_all(PVE_6.2.16-15-).deb'
升/降级内核
然而很多时候并非一帆风顺,我这台机器在最新的PVE8系统中就无论用哪个都会报错,最终选择先安装PVE7,然后手动更新内核和headers到6.2.16-20版本安装就成功了。
如何手动切换内核呢:先在https://mirrors.ustc.edu.cn/proxmox/debian/dists/bullseye/pve-no-subscription/binary-amd64/挑选好对应的内核版本,然后再PVE shell里直接执行:
apt install 内核版本
比如:
apt install pve-kernel-5.15.39-2-pve
headers也是同理。
安装好新内核后使用pve_source脚本切换使用的内核,然后可以将原内核删除来节约空间。
配置VF数量
安装成功后回到pve_source脚本,通过脚本配置核显SR-IOV即可。
询问分配几个VF,就是想SR-IOV虚拟出几个虚拟核显:
UHD730:推荐最多3个
UHD770:推荐最多7个
仅供参考,似乎分出来的VF越多,每个VF性能越弱,而不是动态共享的,所以尽量不要多分。
Windows使用VF核显
创建时BIOS选OVMF (UEFI),机型选q35,添加PCI设备,选0000:00:02.x这种,除了0000:00:02.0不能选其他都可以(比如0000:00:02.1,0000:00:02.2都是可以的),不要勾选所有功能,主GPU之类的,只勾选PCI-Express,然后正常开机安装Win10使用并安装VirtIO驱动和intel对应的核显驱动。
不过使用最新驱动可能会安装失败,我这里用的旧版本gfx_win_101.4316(安装后版本号31.0.101.5186)在12300T的UHD730上正常运行。
有的时候驱动也会莫名其妙安装不上去,重启一下虚拟机,然后重新安装一遍就好了。
此外,安装完驱动可能会看到核显报错43,这是正常现象,安装一个远程控制软件(比如Todesk,Rustdesk或windows自带的远程桌面等),设置好开机自启后将虚拟机关机,修改添加的pci设置如下图:
然后将显示改为“无(none)”,随后开机,通过远程控制软件连接,查看任务管理器中核显GPU在工作,43报错消失就直通成功了。
