乐享奈飞 乐享奈飞

乐享奈飞-乐享无限,共享自由。

目录
AMD lxc
/  

AMD lxc

1.下载模板并上传到PVE

国内源地址:

https://mirrors.ustc.edu.cn/turnkeyLinux/images/proxmox/debian-10-turnkey-mediaserver_16.0-1_amd64.tar.gz

2、创建CT.

第一步记得要把无特权容器的选项去掉,否则会创建不成功

模板选择我们刚刚下载好的debian-10-turnkey-mediaserver_16.0-1_amd64.tar.gz

3、配置CT渲染设备节点,开启硬件加速:

默认情况下.LXC并不会自动映射dev目录下的设备节点文件.所以我们首先需要修改配置文件,使LXC自动映射dev下的设备文件.

首先我们需要在host(pve) shell中确认一下host设备文件的情况:

[email protected]:~# ls -l /dev/dri/

total 0

drwxr-xr-x 2 root root 80 Aug 31 10:05 by-path

crw-rw---- 1 root video 226, 0 Aug 31 10:05 card0

crw-rw---- 1 root render 226, 128 Aug 31 10:05 renderD128

=============================================================

video id: 226, 0

render id:226, 128

修改LXC的配置文件,路径为/etc/pve/lxc/{你的CT ID}.conf.

例如我的CT ID是100,所以对应的文件是/etc/pve/lxc/100.conf

使用编辑器打开该文件进行编辑:

vim /etc/pve/lxc/100.conf

将以下内容添加到文件末尾(将对应的id替换成自己的):

lxc.cgroup.devices.allow = c 226:0 rwm

lxc.cgroup.devices.allow = c 226:128 rwm

lxc.autodev: 1

lxc.hook.autodev:/var/lib/lxc/100/render_device_hook.sh

CT启动的时候,会执行lxc.hook.autodev里的内容,我们需要手动创建对应的节点文件

还是一样,使用编辑器创建并打开脚本文件:

vim /var/lib/lxc/100/render_device_hook.sh

将以下内容添加到文件中(一样,还是要替换成自己的设备id):

mkdir -p ${LXC_ROOTFS_MOUNT}/dev/dri

mknod -m 666 ${LXC_ROOTFS_MOUNT}/dev/dri/card0 c 226 0

mknod -m 666 ${LXC_ROOTFS_MOUNT}/dev/dri/renderD128 c 226 128

最后设置文件权限:

chmod 755 /var/lib/lxc/100/render_device_hook.sh

这样,我们CT的配置就修改好了,现在去启动CT吧.

启动后,我们还需要在CT里安装VA的驱动文件,以下命令均在CT内执行:

apt install i965-va-driver vainfo

安装完成后执行vainfo命令,如果打印如下类似信息就表明硬件转码已经可用了:

[email protected] ~# vainfo

error: XDG_RUNTIME_DIR not set in the environment.

error: can't connect to X server!

libva info: VA-API version 1.4.0

libva info: va_getDriverName() returns 0

libva info: Trying to open /usr/lib/x86_64-Linux-gnu/dri/i965_drv_video.so

libva info: Found init function __vaDriverInit_1_4

libva info: va_openDriver() returns 0

vainfo: VA-API version: 1.4 (libva 2.4.0)

vainfo: Driver version: Intel i965 driver for Intel(R) Coffee Lake - 2.3.0

vainfo: Supported profile and entrypoints

VAProfileMPEG2Simple : VAEntrypointVLD

VAProfileMPEG2Simple : VAEntrypointEncSlice

VAProfileMPEG2Main : VAEntrypointVLD

VAProfileMPEG2Main : VAEntrypointEncSlice

VAProfileH264ConstrainedBaseline: VAEntrypointVLD

VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice

VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP

VAProfileH264Main : VAEntrypointVLD

VAProfileH264Main : VAEntrypointEncSlice

VAProfileH264Main : VAEntrypointEncSliceLP

VAProfileH264High : VAEntrypointVLD

VAProfileH264High : VAEntrypointEncSlice

VAProfileH264High : VAEntrypointEncSliceLP

VAProfileH264MultiviewHigh : VAEntrypointVLD

VAProfileH264StereoHigh : VAEntrypointVLD

VAProfileVC1Simple : VAEntrypointVLD

VAProfileVC1Main : VAEntrypointVLD

VAProfileVC1Advanced : VAEntrypointVLD

VAProfileNone : VAEntrypointVideoProc

VAProfileJPEGBaseline : VAEntrypointVLD

VAProfileJPEGBaseline : VAEntrypointEncPicture

VAProfileVP8Version0_3 : VAEntrypointVLD

VAProfileHEVCMain : VAEntrypointVLD

VAProfileHEVCMain10 : VAEntrypointVLD

VAProfileVP9Profile0 : VAEntrypointVLD

VAProfileVP9Profile2 : VAEntrypointVLD

现在再到Jellyfin的控制台,将转码的硬件加速设置为VA API

===============================================================

jellyfin android 客户端

https://repo.jellyfin.org/releases/client/android/

jellyfin androidTV 客户端

https://repo.jellyfin.org/releases/client/androidtv/

mkdir -p ${LXC_ROOTFS_MOUNT}/dev/dri

mknod -m 666 ${LXC_ROOTFS_MOUNT}/dev/dri/card0 c 226 0

mknod -m 666 ${LXC_ROOTFS_MOUNT}/dev/dri/renderD128 c 226 128
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.autodev: 1
lxc.hook.autodev: /var/lib/lxc/999/video_hook.sh
lxc.mount.entry: /mnt/pve/media me none bind,optional,create=dir
lxc.mount.entry: /mnt/pve/HDD me none bind,optional,create=dir

标题:AMD lxc
作者:Dragon
地址:https://so.98hg.top/articles/2023/02/19/1676811229898.html