version:'3'services:jellyfin:image:jellyfin/jellyfinuser:1000:1000group_add:-"122"# Change this to match your "render" host group id and remove this commentnetwork_mode:'host'volumes:-/path/to/config:/config-/path/to/cache:/cache-/path/to/media:/mediadevices:-/dev/dri/renderD128:/dev/dri/renderD128
重新启动 docker 容器:
docker compose up -d
验证硬件是否可用:
# Check the VA-API codecs
docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/vainfo --display drm --device /dev/dri/renderD128
# Check the Vulkan runtime status
docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -v debug -init_hw_device vulkan
Check the VA-API codecs
PVE 8 + LXC + Docker + Jellyfin,直通 GPU 启用硬件加速的方法
在 LXC 的配置文件(
/etc/pve/lxc/<LXC_ID>.conf)中增加以下内容:配置解释:
lxc.cgroup.devices.allow: a允许容器访问所有设备lxc.cap.drop:继承主机lxc.cgroup2.devices.allow: c 226:0 rwm允许容器访问 /dev/dri/card0 (226:0),权限读、写、创建lxc.cgroup2.devices.allow: c 226:128 rwm允许容器访问 /dev/dri/renderD128 (226:128),权限读、写、创建lxc.mount.entry: /dev/dri/card0 dev/dri/card0 none bind,optional,create=file绑定设备目录lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file绑定设备目录lxc.autodev: 1: 启用自动设备创建。容器启动时会自动创建 /dev 目录下的设备文件。lxc.hook.autodev: sh -c "chmod -R 666 /dev/dri/card*; chmod -R 666 /dev/dri/render*"在自动设备创建后执行的钩子脚本。这个脚本将 /dev/dri/card* 和 /dev/dri/render* 设备文件的权限设置为 666,即所有用户都可以读写这些设备。最后两行的配置很重要。
然后可以根据 Jellyfin 的文档 配置 AMD GPU 硬解了。这些操作需要在 LXC 中运行,下面是主要操作:
根据下面的示例修改
docker-compose.ymlversion: '3' services: jellyfin: image: jellyfin/jellyfin user: 1000:1000 group_add: - "122" # Change this to match your "render" host group id and remove this comment network_mode: 'host' volumes: - /path/to/config:/config - /path/to/cache:/cache - /path/to/media:/media devices: - /dev/dri/renderD128:/dev/dri/renderD128重新启动 docker 容器:
验证硬件是否可用:
# Check the VA-API codecs docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/vainfo --display drm --device /dev/dri/renderD128 # Check the Vulkan runtime status docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -v debug -init_hw_device vulkan如果上面的命令都能正确返回内容(如附图所示),那么就没得问题,可以在 Jellyfin 配置硬件加速为
VAAPI。最后,尝试让开始 Jellyfin 转码或处理缩略图之类的任务,然后在 LXC 中观看 GPU 占用情况。 先安装
sudo pacman -Syu radeontop,然后执行:前面几行有占用变化就是有在硬件加速。