(Nur Jellyfin) Hardware Transkodierung mit Intel N100

Fantasenf

New Member
Oct 24, 2023
17
1
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,
poste bitte mal die Aufgabe von
Code:
cat /etc/pve/lxc/ctid.conf
und von
Code:
ls -la /dev/dri/

Code:
ctid
bitte durch die ID deines Containers ersetzen.
 
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:
Da scheint mir wohl ein Teil des Befehls für crontab abhanden gekommen zu sein. Hab's im Beitrag korrigiert.

Bzgl. VA-API oder QuickSync bin ich überfragt.
 
Hey, danke für die korrigierung. Hatte es mir gestern schon so gebastelt (kurz nach cronjobs gegoggelt) :)
Danke für deine Hilfe :)
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!