pve 8.2 直通核显 支持内核 6.5 至 6.8的版本

降级内核

查找

apt-cache search pve-kernel
proxmox-kernel-6.2.16-10-pve - Proxmox Kernel Image
proxmox-kernel-6.2.16-11-pve - Proxmox Kernel Image
proxmox-kernel-6.2.16-12-pve - Proxmox Kernel Image
proxmox-kernel-6.2.16-13-pve - Proxmox Kernel Image
proxmox-kernel-6.2.16-14-pve - Proxmox Kernel Image
proxmox-kernel-6.2.16-15-pve - Proxmox Kernel Image
proxmox-kernel-6.2.16-16-pve - Proxmox Kernel Image
proxmox-kernel-6.2.16-17-pve - Proxmox Kernel Image
proxmox-kernel-6.2.16-18-pve - Proxmox Kernel Image
proxmox-kernel-6.2.16-19-pve - Proxmox Kernel Image
proxmox-kernel-6.2.16-20-pve - Proxmox Kernel Image
proxmox-kernel-6.2.16-6-pve - Proxmox Kernel Image
proxmox-kernel-6.2.16-8-pve - Proxmox Kernel Image
proxmox-kernel-6.2.16-9-pve - Proxmox Kernel Image
proxmox-kernel-6.2 - Latest Proxmox Kernel Image
proxmox-kernel-6.5.11-1-pve - Proxmox Kernel Image
proxmox-kernel-6.5.11-2-pve - Proxmox Kernel Image
proxmox-kernel-6.5.11-3-pve - Proxmox Kernel Image
proxmox-kernel-6.5.11-4-pve - Proxmox Kernel Image
proxmox-kernel-6.5.11-5-pve - Proxmox Kernel Image
proxmox-kernel-6.5.11-6-pve - Proxmox Kernel Image
proxmox-kernel-6.5.11-7-pve - Proxmox Kernel Image
proxmox-kernel-6.5.11-8-pve - Proxmox Kernel Image
proxmox-kernel-6.5.13-1-pve - Proxmox Kernel Image
proxmox-kernel-6.5.13-2-pve - Proxmox Kernel Image
proxmox-kernel-6.5.13-3-pve - Proxmox Kernel Image
proxmox-kernel-6.5.13-4-pve - Proxmox Kernel Image
proxmox-kernel-6.5.13-5-pve - Proxmox Kernel Image
proxmox-kernel-6.5.13-6-pve - Proxmox Kernel Image
proxmox-kernel-6.5.3-1-pve - Proxmox Kernel Image
proxmox-kernel-6.5 - Latest Proxmox Kernel Image
proxmox-kernel-6.8.1-1-pve - Proxmox Kernel Image
proxmox-kernel-6.8.12-1-pve - Proxmox Kernel Image
proxmox-kernel-6.8.12-2-pve - Proxmox Kernel Image
proxmox-kernel-6.8.4-1-pve - Proxmox Kernel Image
proxmox-kernel-6.8.4-2-pve - Proxmox Kernel Image
proxmox-kernel-6.8.4-3-pve - Proxmox Kernel Image
proxmox-kernel-6.8.4-4-pve - Proxmox Kernel Image
proxmox-kernel-6.8.8-1-pve - Proxmox Kernel Image
proxmox-kernel-6.8.8-2-pve - Proxmox Kernel Image
proxmox-kernel-6.8.8-3-pve - Proxmox Kernel Image
proxmox-kernel-6.8.8-4-pve - Proxmox Kernel Image
proxmox-kernel-6.8 - Latest Proxmox Kernel Image
proxmox-kernel-helper - Function for various kernel maintenance tasks.
proxmox-kernel-libc-dev - Linux support headers for userspace development
pve-firmware - Binary firmware code for the pve-kernel
pve-kernel-6.1.10-1-pve - Proxmox Kernel Image
pve-kernel-6.1 - Latest Proxmox VE Kernel Image
pve-kernel-6.2.16-1-pve - Proxmox Kernel Image
pve-kernel-6.2.16-2-pve - Proxmox Kernel Image
pve-kernel-6.2.16-3-pve - Proxmox Kernel Image
pve-kernel-6.2.16-4-pve - Proxmox Kernel Image
pve-kernel-6.2.16-5-pve - Proxmox Kernel Image
pve-kernel-6.2 - Proxmox Kernel Image for 6.2 series (transitional package)
pve-kernel-helper - Function for various kernel maintenance tasks.
pve-kernel-libc-dev - Linux support headers for userspace development

安装

apt install proxmox-kernel-6.5.13-1-pve

update-grub

# update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.8.12-2-pve
Found initrd image: /boot/initrd.img-6.8.12-2-pve
Found linux image: /boot/vmlinuz-6.8.4-2-pve
Found initrd image: /boot/initrd.img-6.8.4-2-pve
Found linux image: /boot/vmlinuz-6.5.13-1-pve
Found initrd image: /boot/initrd.img-6.5.13-1-pve
Found memtest86+ 64bit EFI image: /boot/memtest86+x64.efi
Adding boot menu entry for UEFI Firmware Settings ...
done

默认使用6.5.13-1-pve

# proxmox-boot-tool kernel pin 6.5.13-1-pve
Setting '6.5.13-1-pve' as grub default entry and running update-grub.
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.8.12-2-pve
Found initrd image: /boot/initrd.img-6.8.12-2-pve
Found linux image: /boot/vmlinuz-6.8.4-2-pve
Found initrd image: /boot/initrd.img-6.8.4-2-pve
Found linux image: /boot/vmlinuz-6.5.13-1-pve
Found initrd image: /boot/initrd.img-6.5.13-1-pve
Found memtest86+ 64bit EFI image: /boot/memtest86+x64.efi
Adding boot menu entry for UEFI Firmware Settings ...
done

检查

# proxmox-boot-tool  kernel list
Manually selected kernels:
None.

Automatically selected kernels:
6.5.13-1-pve
6.8.12-2-pve
6.8.4-2-pve

Pinned kernel:
6.5.13-1-pve

安装头文件

apt install pve-headers-6.5.13-1-pve

清空

/etc/modprobe.d/pve-blacklist.conf

更新grub和initramfs

update-grub
update-initramfs -u -k all

重启 reboot

uname -r
6.5.13-1-pve


安装i915-sriov-dkms

clone代码库(下载源码时请保证能连接上github,修改dns可以连上,具体百度), 推荐使用github

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

国内镜像代码库

git clone https://gitee.com/ifwwww/i915-sriov-dkms

安装构建工具:

apt install build-* dkms

切换到克隆存储库的根目录,然后运行 。

dkms add .

执行命令, 编译安装 i915-sriov-dkms

# 指定版本 为2024.08.09
dkms install -m i915-sriov-dkms -v 2024.08.09 --force
或者不指定
dkms install -m i915-sriov-dkms -v $(cat VERSION) --force
Sign command: /lib/modules/6.5.13-1-pve/build/scripts/sign-file
Signing key: /var/lib/dkms/mok.key
Public certificate (MOK): /var/lib/dkms/mok.pub

Building module:
Cleaning build area...
make -j2 KERNELRELEASE=6.5.13-1-pve -C /lib/modules/6.5.13-1-pve/build M=/var/lib/dkms/i915-sriov-dkms/2024.08.09/build...
...................................
Signing module /var/lib/dkms/i915-sriov-dkms/2024.08.09/build/i915.ko
Cleaning build area...

i915.ko:
Running module version sanity check.
 - Original module
 - Installation
   - Installing to /lib/modules/6.5.13-1-pve/updates/dkms/
depmod...

如果失败了可以先运行以下命令,然后回到二、SRIOV核显虚拟化重新开始编译一次

rm -rf /var/lib/dkms/i915-sriov-dkms*
rm -rf /usr/src/i915-sriov-dkms*
rm -rf ~/i915-sriov-dkms
# dkms status
i915-sriov-dkms/2024.08.09, 6.5.13-1-pve, x86_64: installed

输入以下命令检查是否成功

modinfo i915|grep vf 

反馈如下表示成功
parm: max_vfs:Limit number of virtual functions to allocate. (0 = no VFs [default]; N = allow up to N VFs) (uint)

编辑 grub 配置文件

vim /etc/default/grub

在GRUB_CMDLINE_LINUX_DEFAULT=“quiet” 后添加 intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7
示例:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7"

保存退出

更新grub和initramfs

update-grub
update-initramfs -u -k all

Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.8.12-2-pve
Found initrd image: /boot/initrd.img-6.8.12-2-pve
Found linux image: /boot/vmlinuz-6.8.4-2-pve
Found initrd image: /boot/initrd.img-6.8.4-2-pve
Found memtest86+ 64bit EFI image: /boot/memtest86+x64.efi
Adding boot menu entry for UEFI Firmware Settings ...
done
update-initramfs: Generating /boot/initrd.img-6.8.12-2-pve

Running hook script 'zz-proxmox-boot'..
Re-executing '/etc/kernel/postinst.d/zz-proxmox-boot' in new private mount namespace..
No /etc/kernel/proxmox-boot-uuids found, skipping ESP sync.

安装sysfsutils(对新手友好方便对VF核显数量设置)
不建议使用开机自启脚本rc.local,增加不必要的风险

apt install -y sysfsutils

设置SRIOV核显数量
下面命令中sriov_numvfs = 5的5代表SRIOV核显数量,可自定义设定,最多设置7个设置为1个性能最强,如果设置为7个,那么每一个的性能只有14%(所以这里大家根据自身核显性能自行考量)

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

重启使其生效

reboot

重启完之后检查是否成功
通过PVE节点的Shell输入以下命令查看SRIOV核显直通是否成功

 lspci |grep -i vga

如果成功则会输出以下数据

# lspci |grep -i vga
00:02.0 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 710] (rev 0c)00:02.1 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 710] (rev 0c)
00:02.2 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 710] (rev 0c)
00:02.3 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 710] (rev 0c)

00:02.x VGA 这就是刚刚虚拟出来的核显了
注意:物理核显02.0不能直通出去(可以映射给LXC),否则物理核显本体被独占,所有虚拟核显消失。

(可选)固定内核版本并通过以下方式更新启动配置 。proxmox-boot-tool

查看核显调用情况的方法

apt install intel-gpu-tools -y
intel_gpu_top

在这里插入图片描述

所有功能这里不要点

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值