@
mxT52CRuqR6o5 可以参考这篇文章
https://3os.org/infrastructure/proxmox/gpu-passthrough/igpu-passthrough-to-vm/我 host 内核参数只保留了 quiet intel_iommu=on vfio_iommu_type1.allow_unsafe_interrupts=1
显卡屏蔽只屏蔽了 Intel 驱动 i915 和 nvidia 的驱动(我上面还接了一张 n 卡)
12 代的区别就是 VM 的内核, 驱动和相关依赖得非常新, 稍微旧一点的内核比如 5.19.10 在我这 intel_gpu_top 都会报错
Failed to detect engines! (No such file or directory)
最新的 6.0.0 内核什么参数都不需要加直接就支持 12 代核显
以前的内核还需要加 i915.force_probe=4690
在直通了核显的 VM 上 dmesg | grep i915
内容应该和下面的差不多
[ 5.060294] i915 0000:01:00.0: [drm] VT-d active for gfx access
[ 5.060351] i915 0000:01:00.0: [drm] Using Transparent Hugepages
[ 5.076393] i915 0000:01:00.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0xbbcf
[ 5.076673] i915 0000:01:00.0: [drm] Failed to find VBIOS tables (VBT)
[ 5.077164] i915 0000:01:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
[ 5.093245] i915 0000:01:00.0: firmware: direct-loading firmware i915/adls_dmc_ver2_01.bin
[ 5.093696] i915 0000:01:00.0: [drm] Finished loading DMC firmware i915/adls_dmc_ver2_01.bin (v2.1)
[ 6.619475] i915 0000:01:00.0: [drm] failed to retrieve link info, disabling eDP
[ 6.628504] i915 0000:01:00.0: firmware: direct-loading firmware i915/tgl_guc_70.1.1.bin
[ 6.629399] i915 0000:01:00.0: firmware: direct-loading firmware i915/tgl_huc_7.9.3.bin
[ 6.725923] i915 0000:01:00.0: [drm] GuC firmware i915/tgl_guc_70.1.1.bin version 70.1
[ 6.725931] i915 0000:01:00.0: [drm] HuC firmware i915/tgl_huc_7.9.3.bin version 7.9
[ 6.734941] i915 0000:01:00.0: [drm] HuC authenticated
[ 6.734945] i915 0000:01:00.0: [drm] GuC submission disabled
[ 6.734946] i915 0000:01:00.0: [drm] GuC SLPC disabled
[ 6.736822] [drm] Initialized i915 1.6.0 20201103 for 0000:01:00.0 on minor 1
[ 6.737161] i915 0000:01:00.0: [drm] Cannot find any crtc or sizes
[ 6.737255] i915 0000:01:00.0: [drm] Cannot find any crtc or sizes
intel_gpu_top 应该可以正常启动:
intel-gpu-top: Intel Alderlake_s (Gen12) @ /dev/dri/card1 - 0/ 0 MHz; 100% RC6; 0 irqs/s
然后此时, 你就可以调用核显, 比如硬解视频, 看看实际的核显占用情况和稳定性了.
我 VM 的内核升级到 6.0.0 内核以后硬解就没崩溃过了(连续测试了 3 天, 硬解了超过 20 小时不同编码码率的视频无崩溃, qsv 的性能还是很让人满意的), VM 系统为 Debian sid, 内核版本 6.0.0-2-amd64. 仅供参考.
如果你和我一样在 vm 里跑的是 docker 容器硬解, 容器镜像的 intel compute runtime 和 ffmpeg 版本也非常重要, 一定要选择驱动和相关依赖库都比较新的容器!! 否则很可能就不能正常调用 12 代核显进行 qsv 硬解, 只能退而求其次用 vaapi 硬解.
宿主机 proxmox 的内核还是 5.19.7-2-pve, 它只需要负责把核显交给 VM, 并不需要最新的 intel compute runtime 之类的, 所以内核不用太新问题也不大.