换内核

mkdir kernel
cd kernel
wget https://blog.kkk.rs/upload/pve_8.2_kernel_6.8.4_dg1_dg2.zip
apt install unzip
unzip pve_8.2_kernel_6.8.4_dg1_dg2.zip
# 固定启动内核版本
dpkg -i *.deb
pve-efiboot-tool kernel pin 6.8.4-3-pdbear-pve
# 更新下引导和ramfs
update-initramfs -u -k all
update-grub
reboot

修改内核参数

# nano /etc/default/grub
# 修改 GRUB_CMDLINE_LINUX_DEFAULT

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on spectre_v2=off spectre_v1=off pcie_acs_override=downstream pcie_aspm=off"


上面的选项解释如下:

intel_iommu=on 开启intel的iommu,这里如果是amd的处理需要修改为:amd_iommu=on
spectre_v2=off spectre_v1=off两个CPU BUG的修补,是侧信道攻击,安全类BUG,但修复会导致CPU性能下降,这里我选择不修补,可根据自己情况进行选择。
pcie_acs_override=downstream IOMMU分组补丁,用于将设备分组分的更开一点,如果使用这段代码仍然无法分开iommu组,可以尝试使用这段:pcie_acs_override=downstream,multifunction
pcie_aspm=off 关闭PCIe硬件链路节能机制,DG1的PCIe IP不太兼容这个,建议关闭,关闭后可以运行的更为稳定。

上面选项修改完毕后,使用update-grub更新引导,并重新启动PVE系统;

重新启动后将下面脚本保存为iommu.sh,给与可执行权限chmod +x iommu.sh,并执行,即可查看iommu分组:

#!/bin/bash
for g in `find /sys/kernel/iommu_groups/* -maxdepth 0 -type d | sort -V`; do \
    echo "IOMMU Group ${g##*/}:"; \
        for d in $g/devices/*; do \
        echo -e "\t$(lspci -nns ${d##*/})"; \
        done; \
done;

后运行该脚本,查看dg1和你要直通的其他显卡的分组和编号,

chmod +x iommu.sh
./iommu.sh

飞牛ssh登录

sudo -i # 输入密码
dpkg -r intel-i915 # 如果此前没有安装,这里会说找不到,这没有关系
wget https://blog.kkk.rs/upload/intel-i915-v2.deb
dpkg -i --force-all intel-i915-v2.deb
reboot

关机,再直通显卡 不不会死机

最后修改:2025 年 06 月 02 日
如果觉得我的文章对你有用,请随意赞赏