PVE8.3.1开启核显虚拟化SR-IOV

本来想集成到前面的文章,但是被网上一些文章误导从而浪费了3H之后决定还是单开一篇专门说说PVE8.3.1开启核显虚拟化的过程。所以建议大家还是参考更有价值的唯一的官方指南 https://github.com/strongtz/i915-sriov-dkms

交代一下背景:

SR-IOV 是一种硬件虚拟化技术,简单来说,能将物理 PCIe 设备虚拟成多个虚拟设备,在网卡上被广泛使用。Intel Core CPU 在 11 代后支持了该技术用于 GPU 虚拟化,替换了过去的 GVT-g

Intel 产品 GPU 虚拟化技术列表

发文日期2025年2月14日,以下所有操作均基于当前日期并有效执行!

PVE内核版本:6.8.12-4-pve

建议操作前更新一次源

apt update -y

安装必要的软件包

apt install build-* dkms git sysfsutils -y

安装所需版本的内核和头文件

apt install proxmox-headers-$(uname -r) proxmox-kernel-$(uname -r)

以下建议在home目录执行,所以现切换到home目录

cd ~

拉取最新i915-sriov-dkms

git clone https://github.com/strongtz/i915-sriov-dkms.git

进入i915-sriov-dkms目录

cd ~/i915-sriov-dkms

将当前目录中的内核模块添加到DKMS

dkms add .

添加完成后可以在/usr/src/目录看到已经添加进来的内核模块i915-XXXX

编译并安装该模块

dkms install i915-sriov-dkms/2025.02.03

执行以下命令,确认显卡ID是不是00:02.0

lspci | grep VGA

 确认后,调整内核命令行

nano /etc/default/grub

把GRUB_CMDLINE_LINUX_DEFAULT 的参数值改成 intel_iommu=on i915.enable_guc=3 i915.max_vfs=7 module_blacklist=xe

这里要注意,如果要虚拟成7个核显,则i915.max_vfs=7;如果要虚拟成3个核显,则i915.max_vfs=3

更新grub和initramfs

update-grub
update-initramfs -u

建议再补充执行一次

pve-efiboot-tool refresh

启用VFs

echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7" > /etc/sysfs.conf

#注意,这里的sriov_numvfs = X"必须与上一步的i915.max_vfs=X 数值相同

如果你的显卡ID不是00:02.0,则也需要做相应的调整

重启PVE后执行

lspci | grep VGA

你就可以看到虚拟化的核显已经出现

最后,你就能通过VFs到LXCs或VMs。但是,切勿将00.02.0那个物理GPU / PF传递给VM,这会使所有其他VF崩溃。

 

参考链接:

https://xxxuuu.me/post/pve8-intel-sr-iov/

posted @   airoot  阅读(475)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示