幻灯片-AiNas.cc

PVE核显直通拟机PCIE设备及SR-IOV核显直通

一、去除 PVE 的登录弹窗

Proxmox VE 6.3 / 6.4 / 7.0 / 7.1 / 7.2 / 7.3 / 7.4 / 8.0 / 8.1 去掉未订阅的提示

注意:去除订阅弹窗提醒以后,必须清除浏览器的缓存数据(清理浏览器缓存)后生效

sed -i_orig "s/data.status === 'Active'/true/g" /usr/share/pve-manager/js/pvemanagerlib.js
sed -i_orig "s/if (res === null || res === undefined || \!res || res/if(/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
sed -i_orig "s/.data.status.toLowerCase() !== 'active'/false/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
systemctl restart pveproxy

二、更换 PVE 源

备份源文件

cp /etc/apt/sources.list /etc/apt/sources.list.backup
图片[2]-VUM-PVE整合包关于如何更换国内源问题「VUM-PVE说明书」-VUM星球

添加国内源

有两段代码,第一段整段代码一次性复制

cat <<EOF > /etc/apt/sources.list
deb http://mirrors.ustc.edu.cn/debian/ bookworm main non-free-firmware
deb-src http://mirrors.ustc.edu.cn/debian/ bookworm main non-free-firmware

deb https://mirrors.ustc.edu.cn/debian-security bookworm-security main contrib

deb http://mirrors.ustc.edu.cn/debian/ bookworm-updates main non-free-firmware
deb-src http://mirrors.ustc.edu.cn/debian/ bookworm-updates main non-free-firmware
EOF
图片[3]-VUM-PVE整合包关于如何更换国内源问题「VUM-PVE说明书」-VUM星球
echo "deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
图片[4]-VUM-PVE整合包关于如何更换国内源问题「VUM-PVE说明书」-VUM星球

屏蔽企业源

sed -i 's/^deb https:\/\/enterprise.proxmox.com\/debian\/pve/#deb https:\/\/enterprise.proxmox.com\/debian\/pve/' /etc/apt/sources.list.d/pve-enterprise.list
图片[5]-VUM-PVE整合包关于如何更换国内源问题「VUM-PVE说明书」-VUM星球

屏蔽 Ceph 源

sed -i 's/^deb https:\/\/enterprise.proxmox.com\/debian\/ceph-quincy/#deb https:\/\/enterprise.proxmox.com\/debian\/ceph-quincy/' /etc/apt/sources.list.d/ceph.list
图片[6]-VUM-PVE整合包关于如何更换国内源问题「VUM-PVE说明书」-VUM星球

更新源

apt-get update
图片[7]-VUM-PVE整合包关于如何更换国内源问题「VUM-PVE说明书」-VUM星球

    三、降级内核版本

    Q:为什么要降级内核?

    A:因为当前我们使用的PVE版本是最新的8.2.4,内核版本为6.8.4,而使用到的i915-sriov-dkms项目作者最新只更新支持到的内核版本为6.5,所以需要进行降级内核操作。

    1.首先查看当前版本及内核

    输入以下命令可以查看到当前PVE版本为8.2.4,内核版本为6.8.4

    pveversion
    图片[1]-2024陪伴级教程PVE无论什么版本正确开启SR-IOV虚拟化核显方式-VUM星球

    2.查看当前可以用的内核

    proxmox-boot-tool kernel list
    图片[2]-2024陪伴级教程PVE无论什么版本正确开启SR-IOV虚拟化核显方式-VUM星球

    此时可以看到系统默认有一个6.5.13-5的内核版本,符合项目需求的6.5版本,但是i915-sriov-dkms项目作者目前依旧没有更新到这个版本,所以直接使用这个版本是无法编译成功的,所以我们还是需要继续降级内核操作

    经过我测试6.5.13-1这个版本内比较稳定,所以我们降级为这个版本。

    3.开始降级操作

    更新源

    apt update

    查找可用内核

    apt-cache search pve-kernel
    图片[3]-2024陪伴级教程PVE无论什么版本正确开启SR-IOV虚拟化核显方式-VUM星球

    安装此版本内核

    apt install pve-kernel-6.5.13-1-pve
    图片[4]-2024陪伴级教程PVE无论什么版本正确开启SR-IOV虚拟化核显方式-VUM星球

    更新 Grub 引导配置

    update-grub
    图片[5]-2024陪伴级教程PVE无论什么版本正确开启SR-IOV虚拟化核显方式-VUM星球

    四、固化这个版本的内核

    proxmox-boot-tool kernel pin 6.5.13-1-pve
    图片[6]-2024陪伴级教程PVE无论什么版本正确开启SR-IOV虚拟化核显方式-VUM星球

    检查固化是否成功

    proxmox-boot-tool kernel list

    看到下图红框内容,代表固化成功

    图片[7]-2024陪伴级教程PVE无论什么版本正确开启SR-IOV虚拟化核显方式-VUM星球

    五、安装此版本内核的头文件

    apt install pve-headers-6.5.13-1-pve
    图片[8]-2024陪伴级教程PVE无论什么版本正确开启SR-IOV虚拟化核显方式-VUM星球

    六、配置直通的基础环境

    1.开启IOMMU直通功能

    sed -i '/^GRUB_CMDLINE_LINUX_DEFAULT/c\GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream i915.enable_guc=3 i915.max_vfs=7"' /etc/default/grub

    2.增加虚拟化驱动,加载vifo系统模块

    使用了我们VUM-PVE整合包的无需再配置这步

    echo -e "vfio\nvfio_iommu_type1\nvfio_pci\nvfio_virqfd" | tee -a /etc/modules

    3.屏蔽显卡驱动

    这步是个巨大的坑,一定要注意,如果你之前配置过这步,进去全部删除,如果没有配置过就不管

    nano  /etc/modprobe.d/blacklist.conf 
    图片[9]-2024陪伴级教程PVE无论什么版本正确开启SR-IOV虚拟化核显方式-VUM星球

    4.更新Grub引导配置和initramfs

    update-grub
    update-initramfs -u -k all

    5.重启PVE

    reboot

    6.重启后检查固化降级的内核是否生效

    uname -r

    已经成功以6.5.13-1内核版本启动PVE,固化成功

    图片[10]-2024陪伴级教程PVE无论什么版本正确开启SR-IOV虚拟化核显方式-VUM星球

    七、配置开启SR-IOV虚拟化核显

    1.安装编译环境依赖

    apt-get install --no-install-recommends git mokutil sysfsutils -y
    apt install --reinstall dkms -y

    2.添加一个临时的KERNEL环境变量

    KERNEL=$(uname -r); KERNEL=${KERNEL%-pve}

    3.克隆项目

    项目地址:https://github.com/strongtz/i915-sriov-dkms.git

    git clone https://github.com/strongtz/i915-sriov-dkms.git
    
    cd i915-sriov-dkms/
    
    sed -i 's/"@_PKGBASE@"/"i915-sriov-dkms"/g' ~/i915-sriov-dkms/dkms.conf
    
    sed -i 's/"@PKGVER@"/"'"$KERNEL"'"/g' ~/i915-sriov-dkms/dkms.conf

    4.检查dkms.conf 配置文件中是否配置正确的内核版本和i915-sriov-dkms

    cat ~/i915-sriov-dkms/dkms.conf
    图片[11]-2024陪伴级教程PVE无论什么版本正确开启SR-IOV虚拟化核显方式-VUM星球

    5.创建目录的符号链接到/usr/src/目录下

    dkms add .
    图片[12]-2024陪伴级教程PVE无论什么版本正确开启SR-IOV虚拟化核显方式-VUM星球

    6.进入到链接到的目录

    cd /usr/src/i915-sriov-dkms-$KERNEL
    图片[13]-2024陪伴级教程PVE无论什么版本正确开启SR-IOV虚拟化核显方式-VUM星球

    7.查看已安装的 DKMS 模块及其状态

    dkms status
    图片[14]-2024陪伴级教程PVE无论什么版本正确开启SR-IOV虚拟化核显方式-VUM星球

    8.开始编译内核加入i915-sriov驱动

    dkms install -m i915-sriov-dkms -v $KERNEL -k $(uname -r) --force -j 1

    编译过程时间稍长,需要等待

    图片[15]-2024陪伴级教程PVE无论什么版本正确开启SR-IOV虚拟化核显方式-VUM星球
    图片[16]-2024陪伴级教程PVE无论什么版本正确开启SR-IOV虚拟化核显方式-VUM星球

    再次检查编译是否成功

    dkms status 
    图片[17]-2024陪伴级教程PVE无论什么版本正确开启SR-IOV虚拟化核显方式-VUM星球

    9.查询当前核显ID

    lspci | grep VGA
    图片[18]-2024陪伴级教程PVE无论什么版本正确开启SR-IOV虚拟化核显方式-VUM星球

    这里显示00:02.0,完整的PCI地址0000:00:02.0

    10.修改下面代码的核显ID和虚拟核显数

    echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7" > /etc/sysfs.conf
    
    # 0000:00:02.0 这个修改为你的ID
    # sriov_numvfs = 7里面的7修改为其他值,不要超过7

    11.重启PVE

    reboot

    12.重启完检查是否开启成功

    lspci | grep VGA
    图片[19]-2024陪伴级教程PVE无论什么版本正确开启SR-IOV虚拟化核显方式-VUM星球

    八、直通 PCIe 设备(SR-IOV不需要操作)

    若你的 CPU 不支持 SR-IOV,或是不想开启 SR-IOV,请使用如下命令直通 PCIE 设备:

    sed -i '/^GRUB_CMDLINE_LINUX_DEFAULT/c\GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_acs_override=downstream"' /etc/default/grub
    echo -e "vfio\nvfio_iommu_type1\nvfio_pci\nvfio_virqfd" | tee -a /etc/modules
    
    update-grub
    update-initramfs -u -k all
    
    reboot

    转子:https://bozai.me/pve.html

    © 版权声明
    THE END
    喜欢就支持一下吧
    点赞0 分享