PVE通过i915驱动直通Intel核显
喝红茶聊技术
编辑于 2025年08月04日 09:27

没有废话,直接开始!!

Step0 准备工作

  •  打开BIOS中的 VT-d(此功能没有麻烦点赞看看别的)

    和SR-IOV(此功能没有不能虚拟多个子显卡)功能

禁用安全启动:BIOS设置来禁用安全启动!!!

Step1 克隆项目仓库

 命令行如下:

  • apt-get update #更新软件列表

  • apt install git    #安装git克隆工具

  • cd /home

  • git clone https://github.com/strongtz/i915-sriov-dkms.git       #克隆i915驱动

克隆玩后的目录树

Step2 安装编译工具

  •  命令行如下:

    apt install build-* dkms

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

  • 确认PVE版本:

    uname -r

此处版本号:6.8.4-2-pve 后续命令需要与之相同

  • 安装内核和头文件,注意版本号与上图对应:

    apt install proxmox-headers-6.8.4-2-pve proxmox-kernel-6.8.4-2-pve

Step4 切换到克隆存储的主目录并生成框架

  •  命令行如下:

         cd /home/i915-sriov-dkms

         dkms add. 

    #此处注意命令行中的"."

Step5 执行命令,安装i915驱动

dkms install -m i915-sriov-dkms -v 2024.09.21 --force 

Step6 重新修改内核

  • 命令行如下:

    nano /etc/default/grub

  • 修改内容如下:

    GRUB_CMDLINE_LINUX_DEFAULT 的值

    变更为:quiet intel_iommu=on iommu=pt i915.enable_guc=4 i915.max_vfs=7

注意引号机其他符号均为半角

  • quiet:这个参数告诉内核在启动时不要显示太多的信息,即静默启动。这样在启动过程中就不会显示过多的内核消息,使得启动过程看起来更简洁。

  • iommu=pt:这个参数启用了Passthrough模式的IOMMU(输入输出内存管理单元)。IOMMU是一种硬件技术,用于改善虚拟化环境中设备直通的效率,允许虚拟机直接访问物理设备,从而提升性能。pt代表“passthrough”,即直通模式。

  • intel_iommu=on:这个参数专门针对Intel处理器,启用VT-d技术,即Intel的IOMMU技术。这允许虚拟机直接访问PCI设备,提高了虚拟化的性能和安全性。

  • i915.enable_guc=4:这个参数与Intel的集成显卡有关。i915是Intel集成显卡的内核驱动程序,enable_guc(Graphics Unit Control)设置为3通常意味着启用了GUC子系统,并且配置为使用所有可用的资源。GUC可以提高显卡的性能,特别是在虚拟化环境中。

  • i915.max_vfs=7:这个参数同样与Intel的集成显卡有关,它设置了最大虚拟函数(Virtual Functions)的数量。在虚拟化环境中,这可以允许多个虚拟机共享同一个物理显卡,每个虚拟机使用一个虚拟函数。

主板不支持SR-IOV的此步无法激活多个子通道

Step7 为了启用VFs,需要配置sysfs

  • 内核6.1和6.2的需要额外执行以下命令行:

    update-grub

    update-initramfs -u

  • 安装 sysfsutils,命令行如下:

    apt install sysfsutils

  • 然后修改sysfs.conf文件的配置信息

  • 需要先确认显卡的地址通道,命令如下:

    lspci | grep VGA

通道地址:  00:02.0  需要与后续命令匹配

  • 执行命令行:

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

Step8 重启,直通成功

支持SR-IOV的可以看到显卡地址下有多个子通道

这样就可以通过添加主通道和子通道给不同虚拟机和LXC容器了。

我的主板不支持SR-IOV,所以没有截图了。。。

祝各位小伙伴都顺利直通显卡!!!

完结撒花

项目驱动:可在github上搜索strongtz/i915-sriov-dkms

抢救内核小技巧:

dpkg --get-selections |grep kernel                #查询内核

apt remove pve-坏内核                                #删除对应坏内核

apt install pve-kernel-6.8.12-2-pve               #安装对应版本内核

update-grub                                                  #更新引导

然后重启。。。