[PVE]Intel核显SR-IOV虚拟化并分配给Win10
前言:
网上PVE intel核显SR-IOV的教程不少,但是实践起来往往会有许多坑,于是霜狐亲自采了一遍坑,出了这个教程。
我使用的配置(12300T+微星h610m e)在这里有所介绍,如果配置不同请自行注意可能有需要修改的地方,此外建议先安装好pve_source脚本并完成优化。
硬件支持:
这是个大坑!很多消费级硬件不支持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报错消失就直通成功了。
本文中所有的内容均以发布当天信息为参考,日后若有变更请以最新信息为准。