SystemdDoctor
мешает работе медиа устройства права

Медиасервер не использует ускорение: нет доступа к устройству

Ускорение перекодирования требует доступа к устройству видеоядра. Служба работает от непривилегированного пользователя, который по умолчанию в нужную группу не входит, а изоляция unit-файла может скрыть устройство целиком. Признак — высокая нагрузка на процессор при работающем сервере.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Пользователь службы не в группе устройства

    Файл устройства доступен членам определённой группы. Без членства служба его не откроет.

  2. Доступ к устройствам обрезан изоляцией

    Параметры приватного каталога устройств и списка разрешённых устройств скрывают файл от процессов службы.

  3. Устройство отсутствует в виртуальной машине

    Без проброса устройства ускорение невозможно, и перекодирование всегда идёт процессором.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Есть ли устройство ускорения и какой группе доступно.

ls -l /dev/dri/

Пользователь, группы и изоляция службы.

systemctl show jellyfin -p User -p SupplementaryGroups -p PrivateDevices

Сообщения сервера об ускорении.

journalctl -u jellyfin -n 30 --no-pager | grep -iE "vaapi|qsv|hardware|permission"

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Пользователь службы не в группе устройства
Почему происходит
Файл устройства доступен членам определённой группы. Без членства служба его не откроет.
Как проверить
Посмотрите права устройства и группы пользователя службы.
ls -l /dev/dri/ 2>/dev/null
id jellyfin 2>/dev/null
Как исправить
Добавьте пользователя службы в группу устройства и перезапустите её. Группа зависит от дистрибутива, её видно в правах файла устройства.
2. Доступ к устройствам обрезан изоляцией
Почему происходит
Параметры приватного каталога устройств и списка разрешённых устройств скрывают файл от процессов службы.
Как проверить
Посмотрите параметры и содержимое каталога устройств изнутри службы.
systemctl show jellyfin -p PrivateDevices -p DeviceAllow -p SupplementaryGroups 2>/dev/null
Как исправить
Разрешите конкретное устройство в списке и отключите приватный каталог устройств. Разрешать все устройства не нужно.
[Service]
PrivateDevices=no
DeviceAllow=/dev/dri/renderD128 rw
SupplementaryGroups=render
3. Устройство отсутствует в виртуальной машине
Почему происходит
Без проброса устройства ускорение невозможно, и перекодирование всегда идёт процессором.
Как проверить
Определите окружение и наличие устройства.
systemd-detect-virt; ls /dev/dri/ 2>/dev/null || echo устройств нет
Как исправить
Пробросьте устройство в виртуальную машину или откажитесь от ускорения. Без устройства настройки в самом сервере ничего не меняют.

Пример вывода

Пользователь службы не в группе устройства. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

jellyfin[8100]: [ERR] FFmpeg exited with code 1: Failed to initialise VAAPI connection: -1 (unknown libva error)
jellyfin[8100]: [WRN] Hardware acceleration is not available, falling back to software transcoding

$ ls -l /dev/dri/renderD128
crw-rw---- 1 root render 226, 128 Sep 15 09:12 /dev/dri/renderD128

Связанные ошибки

Источники

  • systemd.exec(5)
    DeviceAllow=, PrivateDevices= и SupplementaryGroups=.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено службой от пользователя вне группы устройства.
    собственная проверка, systemd 255
    сверено 15 сентября 2026