年前入了个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等媒体管理器开启视频硬解了。