文 书 · 技术
intel cpu 开启sriov
1.查看内核版本
uname -a
Linux pve 6.8.12-1-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-1 (2024-08-05T16:17Z) x86_64 GNU/Linux
2.安装dkms及头文件
apt update && apt install -y pve-headers proxmox-headers-$(uname -r) dkms
重启
3.克隆git
git clone https://github.com/strongtz/i915-sriov-dkms.git
4.进入i915-sriov-dkms文件夹
dkms add .
dkms install -m i915-sriov-dkms -v 2025.03.27 --force
dkms install -m i915-sriov-dkms -v $(cat VERSION) --force
VERSION在dkms.conf中查看
查看是否成功
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)
5.安装sysfsutils
apt install sysfsutils -y
6.sysfs设置属性,一般intel核显总线位置都是在0000:00:02.0位置,不清楚的话lspci | grep VGA查找GPU总线位置
echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 3" > /etc/sysfs.conf
7.以下分为grub和efi引导,如果pve系统使用lvm情况下执行grub方法,如果pve系统使用zfs按efi执行
1. GRUB
2.
3. nano /etc/default/grub
4.
5. GRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on i915.enable_guc=3 i915.max_vfs=7"
6.
7. 之后执行
8.
9. update-grub
10.
11. update-initramfs -u -k all
或者
1. EFI
2.
3. nano /etc/kernel/cmdline
4.
5. root=ZFS=rpool/ROOT/pve-1 boot=zfs quiet intel_pstate=passive intel_iommu=on
6.
7. 最后面加入 i915.enable_guc=3 i915.max_vfs=7
8.
9. 之后执行
10.
11. update-initramfs -u -k all
12.
13. pve-efiboot-tool refresh
8.将虚拟核显添加到虚拟机中,如Win10/11
硬件内注意事项:
内存:4GiB (或者更多)
CPU类别:host (硬解建议给全部核心,比如N100 4cores)
BIOS:OVMF(UEFI)
显示:默认标准 核显直通后可改为无(none) *注意选择无(none)时在虚拟机控制台界面会报错【VM 100 qmp command 'set_password' failed - Could not set password】这是正常的。如此长时间报错导致虚拟Win死机时,可以改为标准VGA(std)(见pve官方论坛)
机型:pc-q35
直通SRIOV核显:勾选主GPU、ROM-Bar,不要勾选所有功能
9.配置虚拟机conf文件(可选)
因为Intel的驱动将pciid固定到02.0 ,我们使用02.1/2/3等sriov核显时,不能被正常驱动,即便是直通的sriov核显中勾选了PCI-Express显示正常驱动,但是也会因为pciid的原因导致一些软件工作不正常,比如流媒体Jellyfin Emby等无法硬解和转码。
我们需要在虚拟机conf中把直通的核显指定地址
nano /etc/pve/qemu-server/虚拟机序号.conf
添加:
args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=0x2
评 议
尚无评议,欢迎留言。