Jellyfin unprivileged LXC hardware acceleration possibly assigning wrong group ownership to the render device #1676

Closed
opened 2026-02-05 01:55:53 +03:00 by OVERLORD · 0 comments
Owner

Originally created by @nalabrie on GitHub (Sep 26, 2025).

Have you read and understood the above guidelines?

yes

📜 What is the name of the script you are using?

Jellyfin Media Server

📂 What was the exact command used to execute the script?

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/jellyfin.sh)"

⚙️ What settings are you using?

  • Default Settings
  • Advanced Settings

🖥️ Which Linux distribution are you using?

Ubuntu 24.04

📈 Which Proxmox version are you on?

pve-manager/9.0.10/deb1ca707ec72a89 (running kernel: 6.14.11-2-pve)

📝 Provide a clear and concise description of the issue.

Recreating #7910 because it got automatically closed by the bot when I referenced a comment from another repo.

I'm running proxmox on a host with an Intel i7-9700T. I installed the Jellyfin LXC in unprivileged mode. Only "advanced" setting I changed was core count and disk size. I answered "yes" to hardware acceleration during script setup. I enabled hardware acceleration in the Jellyfin admin panel (using Intel QSV). Forcing a video to transcode to a lower quality crashes with a fatal error. The log ends with the following output from ffmpeg:

Device creation failed: -542398533.
Failed to set value 'vaapi=va:,vendor_id=0x8086,driver=iHD' for option 'init_hw_device': Generic error in an external library
Error parsing global options: Generic error in an external library

Some Googling shows similar (but not identical) errors suggesting that the group ownership of the render device might be incorrect. I checked and the renderD128 device by default has the group ownership set to _ssh. I did the following (inside the LXC):

root@jellyfin:~# cd /dev/dri
root@jellyfin:/dev/dri# ll
total 0
drwxr-xr-x 2 root root        80 Sep 24 20:26 ./
drwxr-xr-x 7 root root       500 Sep 24 20:26 ../
crw-rw---- 1 root video 226,   0 Sep 24 20:26 card0
crw-rw---- 1 root _ssh  226, 128 Sep 24 20:26 renderD128
root@jellyfin:/dev/dri# chown :render renderD128
root@jellyfin:/dev/dri# ll
total 0
drwxr-xr-x 2 root root         80 Sep 24 20:26 ./
drwxr-xr-x 7 root root        500 Sep 24 20:26 ../
crw-rw---- 1 root video  226,   0 Sep 24 20:26 card0
crw-rw---- 1 root render 226, 128 Sep 24 20:26 renderD128

Problem is solved entirely.

🔄 Steps to reproduce the issue.

  1. Install Jellyfin LXC from helper script (unprivileged mode)
  2. Allow it to enable hardware acceleration
  3. Go to Jellyfin admin page in browser
  4. Go to dashboard > playback > transcoding to enable hardware acceleration (in my case, Intel QSV)
  5. Play a video file and use the settings cog to set it to a lower bitrate which forces transcoding to occur
  6. Get a fatal error, video crashes

Paste the full error output (if available).

N/A

🖼️ Additional context (optional).

No response

Originally created by @nalabrie on GitHub (Sep 26, 2025). ### ✅ Have you read and understood the above guidelines? yes ### 📜 What is the name of the script you are using? Jellyfin Media Server ### 📂 What was the exact command used to execute the script? bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/jellyfin.sh)" ### ⚙️ What settings are you using? - [ ] Default Settings - [x] Advanced Settings ### 🖥️ Which Linux distribution are you using? Ubuntu 24.04 ### 📈 Which Proxmox version are you on? pve-manager/9.0.10/deb1ca707ec72a89 (running kernel: 6.14.11-2-pve) ### 📝 Provide a clear and concise description of the issue. **Recreating #7910 because it got automatically closed by the bot when I referenced a comment from another repo.** I'm running proxmox on a host with an Intel i7-9700T. I installed the Jellyfin LXC in unprivileged mode. Only "advanced" setting I changed was core count and disk size. I answered "yes" to hardware acceleration during script setup. I enabled hardware acceleration in the Jellyfin admin panel (using Intel QSV). Forcing a video to transcode to a lower quality crashes with a fatal error. The log ends with the following output from ffmpeg: ``` Device creation failed: -542398533. Failed to set value 'vaapi=va:,vendor_id=0x8086,driver=iHD' for option 'init_hw_device': Generic error in an external library Error parsing global options: Generic error in an external library ``` Some Googling shows similar (but not identical) errors suggesting that the group ownership of the render device might be incorrect. I checked and the `renderD128` device by default has the group ownership set to `_ssh`. I did the following (inside the LXC): ```console root@jellyfin:~# cd /dev/dri root@jellyfin:/dev/dri# ll total 0 drwxr-xr-x 2 root root 80 Sep 24 20:26 ./ drwxr-xr-x 7 root root 500 Sep 24 20:26 ../ crw-rw---- 1 root video 226, 0 Sep 24 20:26 card0 crw-rw---- 1 root _ssh 226, 128 Sep 24 20:26 renderD128 root@jellyfin:/dev/dri# chown :render renderD128 root@jellyfin:/dev/dri# ll total 0 drwxr-xr-x 2 root root 80 Sep 24 20:26 ./ drwxr-xr-x 7 root root 500 Sep 24 20:26 ../ crw-rw---- 1 root video 226, 0 Sep 24 20:26 card0 crw-rw---- 1 root render 226, 128 Sep 24 20:26 renderD128 ``` Problem is solved entirely. ### 🔄 Steps to reproduce the issue. 1. Install Jellyfin LXC from helper script (unprivileged mode) 2. Allow it to enable hardware acceleration 3. Go to Jellyfin admin page in browser 4. Go to `dashboard > playback > transcoding` to enable hardware acceleration (in my case, Intel QSV) 5. Play a video file and use the settings cog to set it to a lower bitrate which forces transcoding to occur 6. Get a fatal error, video crashes ### ❌ Paste the full error output (if available). N/A ### 🖼️ Additional context (optional). _No response_
OVERLORD added the bug label 2026-02-05 01:55:53 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/ProxmoxVE#1676