pve

PVE7.2LXC容器直通Iris Xe核显用于硬件加速

年前入了个I7-1165G7的软路由,具体可以看这篇文章:软路由Intel™I211网卡刷为I210网卡的方法。入了之后才发现个严重的问题:英特尔特么的不干人事,自从10代U开始就对消费级CPU核显虚拟化态度暧昧,迟迟不放出虚拟化驱动。无论是老的核显虚拟化技术GVT-g,还是宣称的新的核显虚拟化技术SR-IOV均不能正常的直通或者虚拟化Iris Xe核显。我查了下Iris Xe在PVE7下是可以直接驱动的,再通过LXC容器理论上可以实现核显的直通及硬解。

说干就干,先在清华源或者中科大源下载debian11的CT模板,然后创建CT。需要注意以下几点:

1、勾选特权容器;

2、创建完先不启动,勾选功能:嵌套、NFS、SMB/CIFS、FUSE、创建设备节点。

一、PVE宿主机相关配置

1、查看宿主机核显是否正常 ls -l /dev/dri/

root@pve:~# ls -l /dev/dri/
total 0
drwxr-xr-x 2 root root       80 Jun 14 00:39 by-path
crwxrwxrwx 1 root root 226,    0 Jun 14 00:39 card0
crwxrwxrwx 1 root root 226,   128 Jun 14 00:39 renderD128

2、从上面的输出信息中提取出如下参数备用

video id: 226, 0
render id:226, 128

3、修改CT容器对应的配置文件,加入显卡直通信息,我的CT容器ID是102,因此修改此文件:nano /etc/pve/lxc/102.conf,加入如下信息

lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.cgroup2.devices.allow: c 29:0 rwm
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
lxc.mount.entry: /dev/fb0 dev/fb0 none bind,optional,create=file
lxc.apparmor.profile: unconfined

以上配置都完成之后将容器开机,后面的操作将在LXC内执行。

二、CT容器下的相关配置

1、在LXC控制台查看核显是否直通成功ls /dev/dri,如无意外应该可以看到如下信息

root@Debian11:~# ls -l /dev/dri/
total 0
drwxr-xr-x 2 root root       80 Jun 14 00:39 by-path
crwxrwxrwx 1 root root 226,    0 Jun 14 00:39 card0
crwxrwxrwx 1 root root 226,   128 Jun 14 00:39 renderD128

2、安装intel-media-va-driver-non-free闭源驱动及vainfo

apt update && apt install intel-media-va-driver-non-free vainfo

3、输入vainfo,验证VA-API( Video Acceleration API即视频加速API)

root@Debian11:~# vainfo
error: XDG_RUNTIME_DIR not set in the environment.
error: can't connect to X server!
libva info: VA-API version 1.10.0
libva info: User environment variable requested driver 'iHD'
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_10
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.10 (libva 2.10.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 21.1.1 ()
vainfo: Supported profile and entrypoints
      VAProfileNone              : VAEntrypointVideoProc
      VAProfileNone              : VAEntrypointStats
      VAProfileMPEG2Simple         : VAEntrypointVLD
      VAProfileMPEG2Simple         : VAEntrypointEncSlice
      VAProfileMPEG2Main          : VAEntrypointVLD
      VAProfileMPEG2Main          : VAEntrypointEncSlice
      VAProfileH264Main           : VAEntrypointVLD
      VAProfileH264Main           : VAEntrypointEncSlice
      VAProfileH264Main           : VAEntrypointFEI
      VAProfileH264Main           : VAEntrypointEncSliceLP
      VAProfileH264High           : VAEntrypointVLD
      VAProfileH264High           : VAEntrypointEncSlice
      VAProfileH264High           : VAEntrypointFEI
      VAProfileH264High           : VAEntrypointEncSliceLP
      VAProfileVC1Simple          : VAEntrypointVLD
      VAProfileVC1Main            : VAEntrypointVLD
      VAProfileVC1Advanced         : VAEntrypointVLD
      VAProfileJPEGBaseline        : VAEntrypointVLD
      VAProfileJPEGBaseline        : VAEntrypointEncPicture
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointFEI
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
      VAProfileVP8Version0_3        : VAEntrypointVLD
      VAProfileHEVCMain           : VAEntrypointVLD
      VAProfileHEVCMain           : VAEntrypointEncSlice
      VAProfileHEVCMain           : VAEntrypointFEI
      VAProfileHEVCMain           : VAEntrypointEncSliceLP
      VAProfileHEVCMain10          : VAEntrypointVLD
      VAProfileHEVCMain10          : VAEntrypointEncSlice
      VAProfileHEVCMain10          : VAEntrypointEncSliceLP
      VAProfileVP9Profile0         : VAEntrypointVLD
      VAProfileVP9Profile1         : VAEntrypointVLD
      VAProfileVP9Profile2         : VAEntrypointVLD
      VAProfileVP9Profile3         : VAEntrypointVLD
      VAProfileHEVCMain12          : VAEntrypointVLD
      VAProfileHEVCMain12          : VAEntrypointEncSlice
      VAProfileHEVCMain422_10       : VAEntrypointVLD
      VAProfileHEVCMain422_10       : VAEntrypointEncSlice
      VAProfileHEVCMain422_12       : VAEntrypointVLD
      VAProfileHEVCMain422_12       : VAEntrypointEncSlice
      VAProfileHEVCMain444         : VAEntrypointVLD
      VAProfileHEVCMain444         : VAEntrypointEncSliceLP
      VAProfileHEVCMain444_10       : VAEntrypointVLD
      VAProfileHEVCMain444_10       : VAEntrypointEncSliceLP
      VAProfileHEVCMain444_12       : VAEntrypointVLD
      VAProfileHEVCSccMain         : VAEntrypointVLD
      VAProfileHEVCSccMain         : VAEntrypointEncSliceLP
      VAProfileHEVCSccMain10        : VAEntrypointVLD
      VAProfileHEVCSccMain10        : VAEntrypointEncSliceLP
      VAProfileHEVCSccMain444       : VAEntrypointVLD
      VAProfileHEVCSccMain444       : VAEntrypointEncSliceLP
      VAProfileAV1Profile0          : VAEntrypointVLD
      VAProfileHEVCSccMain444_10      : VAEntrypointVLD
      VAProfileHEVCSccMain444_10      : VAEntrypointEncSliceLP

至此,LXC核显直通设置完成,可以安装Jellyfin等媒体管理器开启视频硬解了。

4 thoughts on “PVE7.2LXC容器直通Iris Xe核显用于硬件加速

  1. 回复
    Matt - 2022年8月14日

    Xe核显转码+hdr映射+字幕烧录效果如何?拖动进度条有没有卡顿?我n5105用着还是觉得有点慢~

    1. 回复
      风の语 - 2022年8月22日

      emmmm,我抽空试试

  2. 回复
    B战:真-张大爷 - 2022年7月4日

    安装好了,CPU还是100%,pve7.2.5(5.15.3内核)>LXC(debian11)>K3S>EMBY

    1. 回复
      风の语 - 2022年7月4日

      emby想要硬解需要会员订阅啊。你买了会员?

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Scroll to top