Hi all,
________________________________________________________
Solution:
Requirement: iGPU passthrough to an unprivileged LXC running Jellyfin in docker
Original post below:
________________________________________________________
Context:
I am running Jellyfin docker in an unprivileged LXC - I am currently having an issue passing through the iGPU for transcoding. I have used every guide/forum I could find, to no avail (yet), so looking for help from more experienced minds!
- I initially had transcoding working (confirmed using
I have tried many attempts to get this working and may have borked things in the process (I am still learning)
Current Situation:
Running
Therefore, perhaps mistakenly, I added the following to my /etc/pve/lxc/<xyz>.conf file:
However, the host now shows:
System Specs:
Any help would be massively appreciated, until then I'll keep trying!
________________________________________________________
Solution:
Requirement: iGPU passthrough to an unprivileged LXC running Jellyfin in docker
- I used the Web UI 'Add Device Passthrough' functionality (in the resources section of the LXC) to passthrough:
/dev/dri/renderD128
(iGPU) with mode:0666
- If someone wanted to add it manually to the
/etc/pve/lxc/<xyz>.conf
, they could use the following:dev0: /dev/dri/renderD128,mode=0666
to achieve the same.
- If someone wanted to add it manually to the
Original post below:
________________________________________________________
Context:
I am running Jellyfin docker in an unprivileged LXC - I am currently having an issue passing through the iGPU for transcoding. I have used every guide/forum I could find, to no avail (yet), so looking for help from more experienced minds!
- I initially had transcoding working (confirmed using
intel_gpu_top
) via adding the below into my /etc/pve/lxc/<xyz>.confHowever, as you may have guessed, it stopped working (assumedly due to not having the correct permissions)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/dri dev/dri none bind,optional,create=dir
lxc.mount.entry: /dev/dri/card0 dev/dri/card0 none bind,optional,create=file
lxc.mount.entry: /dev/dri/renderD128 dev/renderD128 none bind,optional,create=file
I have tried many attempts to get this working and may have borked things in the process (I am still learning)
Current Situation:
Running
getent group | grep -Ei "render|video"
in the host, gives me:Running the above in the 'Jellyfin' LXC:video:x:44:root
render:x:104:root
video:x:44:root
render:x:108:root
Therefore, perhaps mistakenly, I added the following to my /etc/pve/lxc/<xyz>.conf file:
Then ran a combo oflxc.idmap: u 0 100000 65536
lxc.idmap: g 0 100000 44
lxc.idmap: g 44 44 1
lxc.idmap: g 45 100045 62
lxc.idmap: g 108 104 1
lxc.idmap: g 109 100108 65428
usermod -aG render,video root
& usermod -G render,video root
& usermod --append --groups video,render root
, hoping to see 'root' marked as having access to the 'Jellyfin' LXC renderD128 device.However, the host now shows:
and the 'Jellyfin' LXC shows:ls -l /dev/dri
total 0
drwxr-xr-x 2 root root 80 Nov 28 11:57 by-path
crw-rw---- 1 root video 226, 0 Nov 28 11:57 card0
crw-rw---- 1 root 100989 226, 128 Nov 28 11:57 renderD128
When searching for 100989 & 990 in their respective /etc/subgid's, I can't find anything attached to those values.ls -l /dev/dri
total 0
drwxr-xr-x 2 nobody nogroup 80 Nov 28 11:57 by-path
crw-rw---- 1 nobody video 226, 0 Nov 28 11:57 card0
crw-rw---- 1 nobody 990 226, 128 Nov 28 11:57 renderD128
System Specs:
- CPU/APU: Intel 12400
- Proxmox: v8.3.0
- Ubuntu: v22.04
- Jellyfin: v10.10.3
Any help would be massively appreciated, until then I'll keep trying!
Last edited: