Intel Rocket Lake (11th) Quicksync Passthrough

I'm using Proxmox 8 with Intel i5-1240P (and N100) and the tteck Plex LXC. I have vGPU enabled at the Proxmox host level and have 7 vGPU VFs. If in the LXC I use the host's card0 and renderD128 devices then HDR tone mapping works in Plex. However, if I use any of the VF GPUs then tone mapping does not work. HW transcoding works in all cases. The video stream with tone mapping turned on while using a VF is corrupted.

Code:
lxc.cgroup2.devices.allow: c 226:4 rwm
lxc.cgroup2.devices.allow: c 226:132 rwm
lxc.mount.entry: /dev/dri/card4 dev/dri/card0 none bind,optional,create=file
lxc.mount.entry: /dev/dri/renderD132 dev/dri/renderD128 none bind,optional,create=file

working config:

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

Ideas? I have a VF vGPU exposed to Windows 11 Pro and it works flawlessly on the same host. So this seems to be a Linux/Plex/driver issue.
 
Last edited:
Sorry to comment on a 2 year old thread where everyone seems to have got it working.
I get the correct output with ls -l /dev/dri in the lxc after following all the instructions
Code:
total 0
drw-rw---- 2 root root         80 Jun 27 08:32 by-path
crw-rw---- 1 root video  226,   0 Jun 27 08:32 card0
crw-rw---- 1 root syslog 226, 128 Jun 27 08:32 renderD128
but cat /etc/group | grep plex gives me the following output:

Code:
video:x:44:plex
plex:x:999:

I belive there is something wrong there since i still cannot transcode with my igpu but get no error message anywhere.

I downgraded the drivers to a version that a comment suggested works with HDR encoded video buit still the same.

Aynone got a clue what happened?
 
Last edited:
Sorry to comment on a 2 year old thread where everyone seems to have got it working.
I get the correct output with ls -l /dev/dri in the lxc after following all the instructions
Code:
total 0
drw-rw---- 2 root root         80 Jun 27 08:32 by-path
crw-rw---- 1 root video  226,   0 Jun 27 08:32 card0
crw-rw---- 1 root syslog 226, 128 Jun 27 08:32 renderD128
but cat /etc/group | grep plex gives me the following output:

Code:
video:x:44:plex
plex:x:999:

I belive there is something wrong there since i still cannot transcode with my igpu but get no error message anywhere.

I downgraded the drivers to a version that a comment suggested works with HDR encoded video buit still the same.

Aynone got a clue what happened?
I had an issue where transcoding would not work when I used the 22.04 LXC container. I got it working with the 20.04 Lxc container with the exact same instructions. I then migrated the 20.04 to 22.04 and transcoding continued to work. Not sure what the issue was, might even be me that did something wrong with the initial 22.04 install.

It is a long shot but you might give it a go.
 
Did anyone already migrate to PVE8 and can confirm transcoding continues to work?
----

Update: I just upgraded and can confirm transcoding still works fine
 
Last edited:
Here are the steps I did to enable Intel Quicksync/Hardware Transcoding and install Plex:

1. Restart your machine and enter BIOS. Enable intel integrated graphics and disable IOMMU. Save settings and exit BIOS (usually F10 key).

2. In ProxMox open a PVE shell and run "ls -l /dev/dri" at the command prompt. You should see something similar to this:
Code:
drwxr-xr-x 2 root root         80 Nov 15 18:23 by-path
crw-rw---- 1 root video  226,   0 Nov 15 18:23 card0
crw-rw---- 1 root render 226, 128 Nov 15 18:23 renderD128
If you get "No such file or directory" or similar, Intel graphics is not enabled correctly.

3. Create a container (right click pve and select Create CT). Use Ubuntu 20.04 standard as template. I used 8GB disk size and 2GB memory (can be changed later). Select DHCP (ipv4) in the network tab. Start the container and stop it again. Don't install plex yet.

4. Open a pve shell and edit the container config file "/etc/pve/lxc/100.conf" (replace 100 with the ID of your container). Add these lines to the bottom of the file:

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/dri dev/dri none bind,optional,create=dir
lxc.mount.entry: /dev/dri/renderD128 dev/renderD128 none bind,optional,create=file
change 226 and 128 if needed so the numbers are the same as in the output of the "ls" command in 2.

5. Start the container and open a shell in it. Run "ls -l /dev/dri" and you should get a similar result as in 2. Stay in the shell until next step. Again, if you get "No such file or directory" or similar then something went wrong.

6. Add the plex repositories as described under "DEB-based distros (Ubuntu, etc.)" here:
https://support.plex.tv/articles/23...ing-for-supported-linux-server-distributions/

Install plex using this command "apt-get install plexmediaserver"
Verify that plex was added to the group of the graphics (in my case video and syslog):
cat /etc/group | grep plex

You are done!
This is the most applicable guide I have seen yet, but I do get the error when running in pve shell that "No such file or directory." You say that intel graphics is not enabled correctly in this case. Do you have a guide on how to enable it correctly? I am using proxmox 8 and created a plex lxc container using tteck script:
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/plex.sh)"

Also, I am using an intel core i9-11900k CPU.
 
Sorry to comment on a 2 year old thread where everyone seems to have got it working.
I get the correct output with ls -l /dev/dri in the lxc after following all the instructions
Code:
total 0
drw-rw---- 2 root root         80 Jun 27 08:32 by-path
crw-rw---- 1 root video  226,   0 Jun 27 08:32 card0
crw-rw---- 1 root syslog 226, 128 Jun 27 08:32 renderD128
but cat /etc/group | grep plex gives me the following output:

Code:
video:x:44:plex
plex:x:999:

I belive there is something wrong there since i still cannot transcode with my igpu but get no error message anywhere.

I downgraded the drivers to a version that a comment suggested works with HDR encoded video buit still the same.

Aynone got a clue what happened?
"Sorry to comment on a 2 year old thread where everyone seems to have got it working.
I get the correct output with ls -l /dev/dri in the lxc after following all the instructions," what instructions? This thread describes the steps AFTER you configure the iGPU properly...
 
"Sorry to comment on a 2 year old thread where everyone seems to have got it working.
I get the correct output with ls -l /dev/dri in the lxc after following all the instructions," what instructions? This thread describes the steps AFTER you configure the iGPU properly...
if you dont have a discrete gpu (pcie card) then your bios will have the internal one enabled by default. For my NUC11I did not need to do any modification to my bios or Proxmox besides the steps listed in the guide. Dont enable iommu , stock should work fine.
i would suggest to try a standard LXC Ubuntu 22.04 instead of the scripted one.
 
if you dont have a discrete gpu (pcie card) then your bios will have the internal one enabled by default. For my NUC11I did not need to do any modification to my bios or Proxmox besides the steps listed in the guide. Dont enable iommu , stock should work fine.
i would suggest to try a standard LXC Ubuntu 22.04 instead of the scripted one.
Unfortunately I followed the guide, setup a custom Ubuntu, installed Plex and binaries. Everything shows up on host and container and I can even select the cpu iGPU in Plex trasncoding settings, however when I test in Plex it say transcode and not hardware transcode and my CPU is still maxing out so definitely not working.

I don't know why this needs to be so difficult. I might have to wipe everything and start over again with a new Proxmox. I had initially setup for GPU passthrough to a VM which I thought was causing conflict but I reversed all of that setup so it shouldn't be still causing issues.

I have both an Intel i9-11900k iGPU and RTX 4070 GPU. I've tried with both but stuck with the iGPU as the process seemed easier.

Hardware trasncoding has taken years off my life haha
 
Unfortunately I followed the guide, setup a custom Ubuntu, installed Plex and binaries. Everything shows up on host and container and I can even select the cpu iGPU in Plex trasncoding settings, however when I test in Plex it say transcode and not hardware transcode and my CPU is still maxing out so definitely not working.

I don't know why this needs to be so difficult. I might have to wipe everything and start over again with a new Proxmox. I had initially setup for GPU passthrough to a VM which I thought was causing conflict but I reversed all of that setup so it shouldn't be still causing issues.

I have both an Intel i9-11900k iGPU and RTX 4070 GPU. I've tried with both but stuck with the iGPU as the process seemed easier.

Hardware trasncoding has taken years off my life haha

Are you still using the rtx when testing? Are you sure IOMMU is really turned off.
Maybe you should start with a vanilla proxmox version since you did tinker with IOMMU. .
The above guide works fine on a new PVE instance with just an integrated GPU.
Long shot Maybe try a 20.04 LXC, i had an issue first with 22.04. 20.04 did work and continued to worked after i upgraded it manually to 22.04
 
Are you still using the rtx when testing? Are you sure IOMMU is really turned off.
Maybe you should start with a vanilla proxmox version since you did tinker with IOMMU. .
The above guide works fine on a new PVE instance with just an integrated GPU.
Long shot Maybe try a 20.04 LXC, i had an issue first with 22.04. 20.04 did work and continued to worked after i upgraded it manually to 22.04
I will try a vanilla PVE. Iommu being on shouldn't matter.
 
Hello!
Sorry for my late reply!
I upgraded my disks again and followed my own, revised recipe above and transcoding is not working (no "hw" under "NOW PLAYING" in the plex dashboard). Only difference now is a new disk and latest PVE, same hardware.
I will report back here if I find a fix.
 
Last edited:
I'd also like to show some appreciation for osaether! I had made a plex container using the tteck script, and no matter what I tried, I couldn't get hardware transcoding to work. As others have mentioned, you can even see and select your igpu in the plex transcoder settings and yet it still wont work. It wasn't until I manually made an LXC container using the above instructions that I was able to get hardware transcoding to work correctly. Much appreciated!
 
Last edited:
Thanks osaether! in my case (Haswell CPU, debian container) i had to add plex to another group: input

Code:
root@plex:/# ls -la /dev/dri
total 0
drwxr-xr-x 3 root video      100 Jan  6 18:40 .
drwxr-xr-x 8 root root       540 Jan  6 19:04 ..
drw-rw---- 2 root root        80 Jan  6 18:40 by-path
crw-rw---- 1 root video 226,   0 Jan  6 18:40 card0
crw-rw---- 1 root input 226, 128 Jan  6 18:40 renderD128

after i added plex to the input group it started working!
 
edit// found the solution. Mapped the gid wrongly to 107 instead of 106.

13900H
I also have a problem. LXC (unprivileged), installed debian 12 and jellyfin with the curl.
Did the mapping of the iGPU and can see the renderD128 device inside the Lxc. Problem is that transcoding is not working and some things seem a bit strange.

Lxc console:
Code:
root@jelly:~# cat /etc/group
video:x:44:jellyfin,root
render:x:106:jellyfin,root
_ssh:x:107:root
jellyfin:x:112:

root@jelly:~# getent group render | cut -d: -f3
106

root@jelly:~# stat -c '%g' /dev/dri/renderD128
107

root@jelly:~# ls -l /dev/dri
total 0
crw-rw---- 1 nobody _ssh 226, 128 Mar 22 04:17 renderD128

The render device should be 107 instead of 106 I assume, but 107 is owned by nobody and _ssh. Im not sure what the reason is.
Are there some special drivers for the iris Xe that need to be installed on the host and Lxc?
 
Last edited:

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!