(Nur Jellyfin) Hardware Transkodierung mit Intel N100

Fantasenf

New Member
Oct 24, 2023
28
5
3
Hallo Leute,

ich bin noch recht neu im Proxmox Universum und hab mir erst vor kurzem einen kleinen Mini PC mit einem Intel N100 zugelegt.
Ich habe nun Jellyfin als LXC Container installiert und leider funktioniert die Hardware Transkodierung nicht.
Ich habe bereits mehrere Seiten (auch hier) nach diesem Problem durchsucht, manche haben es geschafft, indem sie wohl einen neuen Kernel installiert haben (Habe aber den aktuellsten) oder indem sie /dev/dri irgendwie als Device hinzugefügt haben.
Für mich hat aber leider keine der Möglichkeiten geholfen, aber vielleicht habt ihr ja noch eine Idee, die ich umsetzen könnte.

PS.: aufgrund meines Anfänger Wissens, wäre es nett, wenn ihr nachlässig mit mir sein könntet und vielleicht. etwas Detaillierter antworten könntet <3

Danke euch :) und schonmal vielen Dank für die Hilfe.

PPS.: Ähm, wenn ihr irgendwelche Logs benötigt, gebt gerne bescheid. Ich hätte sie schon mit dran gehängt, wenn ich gewusst hätte, welche :)
 
Last edited:
Hi, hier einmal vom node und das /dev/dri vom container

Code:
## Jellyfin LXC
#  ### https://tteck.github.io/Proxmox/
#  <a href='https://ko-fi.com/D1D7EP4GF'><img src='https://img.shields.io/badge/%E2%98%95-Buy me a coffee-red' /></a>
arch: amd64
cores: 2
features: mount=nfs;cifs,nesting=1
hostname: jellyfin
memory: 2048
mp0: /mnt/pve/syn,mp=/mnt/pve/syn
net0: name=eth0,bridge=vmbr0,hwaddr=B2:74:31:28:9E:2F,ip=dhcp,type=veth
onboot: 0
ostype: debian
rootfs: local-lvm:vm-100-disk-0,size=8G
swap: 512
tags: priviligiert
lxc.cgroup2.devices.allow: a
lxc.cap.drop:
lxc.cgroup2.devices.allow: c 188:* rwm
lxc.cgroup2.devices.allow: c 189:* rwm
lxc.mount.entry: /dev/serial/by-id  dev/serial/by-id  none bind,optional,create=dir
lxc.mount.entry: /dev/ttyUSB0       dev/ttyUSB0       none bind,optional,create=file
lxc.mount.entry: /dev/ttyUSB1       dev/ttyUSB1       none bind,optional,create=file
lxc.mount.entry: /dev/ttyACM0       dev/ttyACM0       none bind,optional,create=file
lxc.mount.entry: /dev/ttyACM1       dev/ttyACM1       none bind,optional,create=file
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/fb0 dev/fb0 none bind,optional,create=file
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file


Code:
root@jellyfin:~# ls -la /dev/dri/
total 0
drwxr-xr-x 3 root root       100 Oct 28 01:00 .
drwxr-xr-x 9 root root       640 Oct 28 01:01 ..
drwxr-xr-x 2 root root        80 Oct 28 01:00 by-path
crw-rw---- 1 root video 226,   0 Oct 28 01:00 card0
crw-rw---- 1 root sgx   226, 128 Oct 28 01:00 renderD128
 
Last edited:
Bitte :)

Code:
root@proxmox:~# ls -la /dev/dri/
total 0
drwxr-xr-x  3 root root        100 Oct 28 01:00 .
drwxr-xr-x 18 root root       4700 Oct 28 01:00 ..
drwxr-xr-x  2 root root         80 Oct 28 01:00 by-path
crw-rw----  1 root video  226,   0 Oct 28 01:00 card0
crw-rw----  1 root render 226, 128 Oct 28 01:00 renderD128
 
Fahr bitte den Container herunter und setze bitte mal vor diese Zeilen in der Config-Datei vom Container eine Raute (#)
Code:
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/fb0 dev/fb0 none bind,optional,create=file
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file
Die Zeilen sollten dann so aussehen
Code:
#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/fb0 dev/fb0 none bind,optional,create=file
#lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
#lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file

Füge die nachfolgenden Zeilen darunter ein
Code:
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
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

Starte dann den Container wieder und kontrolliere die Ausgabe von
Code:
ls -la /dev/dri/
vom Container. Die Ausgabe sollte so aussehen:
Code:
total 0
drwxr-xr-x 2 root root        80 Oct 27 21:52 .
drwxr-xr-x 8 root root       520 Oct 27 21:52 ..
crw-rw---- 1 root video 226,   0 Oct 27 21:52 card0
crw-rw---- 1 root video 226, 128 Oct 27 21:52 renderD128

Die Ausgabe von
Code:
groups jellyfin
wäre auch noch interessant.

Ich hab selbst ein Mini-ITX Mainboard mit Intel N100. Bei mir besteht das Problem, dass bei renderD128 manchmal root root anstatt root video steht. (Bei der Ausgabe von ls -la /dev/dri/ im Container)

Das lässt sich aber ganz einfach lösen. Dafür im Container:
Code:
EDITOR=nano crontab -e
Dort am Ende der Datei
Code:
@reboot /bin/chgrp video /dev/dri/renderD128
einfügen, mit Strg+S & Strg+X die Datei speichern und den Container neustarten. Dann sollte Hardware Transkodierung auch bei dir funktionieren
 
Last edited:
Hey Danke für die schnelle Antwort.
So sieht das jetzt bei mir aus:
Code:
root@jellyfin:~# ls -la /dev/dri/
total 0
drwxr-xr-x 2 root root        80 Oct 28 01:11 .
drwxr-xr-x 9 root root       620 Oct 28 01:11 ..
crw-rw---- 1 root video 226,   0 Oct 28 01:00 card0
crw-rw---- 1 root sgx   226, 128 Oct 28 01:00 renderD128

root@jellyfin:~# groups jellyfin
jellyfin : jellyfin video render

Bei mir steht ja beim renderD128 root / sgx, soll ich es mal wie von dir beschrieben ändern oder so lassen?


PS.: Ich wollte das mit crontab einfach mal machen, beim speichern kommt folgender Fehler:
Code:
"/tmp/crontab.93M1CV/crontab":23: bad minute
errors in crontab file, can't install.
Do you want to retry the same edit? (y/n)


EDIT: Ich hab deinen Befehl mal ohne Crontab ausgeführt ausgeführt und nun gehts <3
Danke :)

Achja... Was ist denn besser in Hardware Transkodierung: Vaapi oder Intel Quicksync?
 
Last edited:
Hey, danke für die korrigierung. Hatte es mir gestern schon so gebastelt (kurz nach cronjobs gegoggelt) :)
Danke für deine Hilfe :)