开启核显 SR-IOV
SR-IOV 是一种硬件虚拟化技术,简单来说,能将物理 PCIe 设备虚拟成多个虚拟设备,在网卡上被广泛使用。Intel Core CPU 在 11 代后支持了该技术用于 GPU 虚拟化,替换了过去的 GVT-g(Intel 产品 GPU 虚拟化技术列表)
开启 SR-IOV 主要用到这个驱动程序:i915-sriov-dkms,能够创建最多 7 个 VF(可以简单理解为 vGPU)
–可抄作业云留月的“二、方案一:SRIOV核显虚拟化(推荐,方案来源:畅网小云大佬,兼容PVE8.2 和 6.8内核)”
Windows 虚拟机挂载
Windows 虚拟机要先配置好远程桌面,能连的上。虚拟机配置里「显示」选「无」(选「无」后就无法 VNC 连接了,所以要先配好远程桌面)
添加 PCI 设备,选择 vGPU,勾上主 GPU
进入 Windows 安装驱动,
LXC 容器挂载
新建 LXC 容器要选择「嵌套」+「特权」(去掉无特权容器的 ✅)
挂载设备到 LXC 容器里,在 PVE 里找下对应设备驱动,选一个未使用的 vGPU ,我这里选择 card2 和 renderD130
$ ls -l /dev/dri
drwxr-xr-x 2 root root 320 Aug 6 00:38 by-path
crw-rw---- 1 root video 226, 0 Aug 6 00:30 card1
crw-rw---- 1 root video 226, 2 Aug 6 00:30 card2
crw-rw---- 1 root video 226, 3 Aug 6 00:30 card3
crw-rw---- 1 root render 226, 128 Aug 6 00:30 renderD128
crw-rw---- 1 root render 226, 130 Aug 6 00:30 renderD130
crw-rw---- 1 root render 226, 131 Aug 6 00:30 renderD131
关闭 LXC 容器,然后修改对应 LXC 容器配置文件
$ vim /etc/pve/lxc/<LXC_ID>.conf
添加以下内容把设备挂载到 LXC 内(分别填入 video id 和 render id,以及映射对应 card 和 render)
lxc.cgroup2.devices.allow: c 226:2 rwm
lxc.cgroup2.devices.allow: c 226:130 rwm
lxc.mount.entry: /dev/dri/card2 dev/dri/card0 none bind,optional,create=file
lxc.mount.entry: /dev/dri/renderD130 dev/dri/renderD128 none bind,optional,create=file
进入 LXC 容器安装驱动
$ apt update && apt install intel-media-va-driver-non-free vainfo
(已经LXC了可以直接安装Jellyfin,没必要再docker)
如果 LXC 内也使用了容器,例如我在 LXC 内装了 Docker 部署 Jellyfin,则容器内也要有驱动,并把设备挂载进去
$ docker run ... \
... \
--device /dev/dri:/dev/dri \
...
然后 Jellyfin 容器内就可以找到对应设备,启用硬件加速即可
快速链接:
把文章里的docker替换成video
鸣谢:
文章参考:
PVE8.0 LXC内使用INTEL/AMD/NVIDIA显卡_pve 8 安装显卡驱动-CSDN博客
PVE8 上启用 12 代 Intel CPU 核显 SR-IOV | x³u³ (xxxuuu.me)
【PVE】All in One 的快乐之系统配置及核显SR-IOV直通 | 云留月的技术小站 (cloudstaymoon.com)