Issue persists on 1.41.6.9606
Iām following up with this (tracking it down) .
Everything I last saw showed the changes were added.
Those SHOULD be in the build.
It is in the build. Added to GPU list three weeks ago.
LNL = LunarLake
BMG = BattleMage
Can you please grab me an updated set of DEBUG logs?
- restart PMS (so I can see the detection)
- Start the playback (so I can see what PMS & Transcoder do)
- Stop playback
- Download Logs
- Attach here
Thanks.
plex_logs.zip (136.1 KB)
In my experience, this is almost certainly a permissions issue; the user PMS is running as cannot open /dev/dri/renderD128:
Mar 28, 2025 13:31:17.904 [140670419348280] ERROR - [Req#6b/Transcode] [FFMPEG] - No VA display found for device /dev/dri/renderD128.
Mar 28, 2025 13:31:17.904 [140670419348280] DEBUG - [Req#6b/Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Invalid argument
So, how are you passing /dev/dri through to the container? And what user and group are you running PMS as (PLEX_UUID and PLEX_GUID, if youāre using the Plex official image)?
And what does ls -al /dev/dri show on the host system?
Hiya! Thanks for checking on this.
ls -al of the system from within the container:
root@nucbox:/# ls -al /dev/dri
total 0
drwxrwxrwx 3 root root 100 Feb 28 14:12 .
drwxr-xr-x 6 root root 360 Mar 30 20:58 ..
drwxrwxrwx 2 root root 80 Feb 28 14:12 by-path
crwxrwxrwx 1 root video 226, 0 Feb 28 14:12 card0
crwxrwxrwx 1 root video1 226, 128 Feb 28 14:12 renderD128
In the course of testing this for myself Iāve just chmoddād it to 777 recursive.
I switched the container to one I was building myself to the one distributed by you guys. I continue to not see change.
Iām passing /dev/dri to the container via my docker-compose.yaml:
plex:
image: plexinc/pms-docker:beta
container_name: plex
dns: 1.1.1.1
network_mode: host
environment:
- PLEX_UID=1000
- PLEX_GID=1000
- TZ=Etc/UTC
- VERSION=docker
- device=/dev/dri:/dev/dri
- device=/dev/shm:/dev/shm
volumes:
- /configs/plex:/config
- /mnt/media/data:/data
- /dev/dri:/dev/dri
- /dev/shm:/dev/shm
restart: unless-stopped
On the host ,
is UID 1000 (your username) a member of groups video and video1 ?
I donāt understand where video1 comes from. Iāve not seen it.
Now, if you wish to set the host Debian/Ubuntu drm to make it uniform:
sudo bash
echo 'SUBSYSTEM=="drm", GROUP="video" , MODE="0660" > /lib/udev/rules.d/60-plex-hw-transcoding.rules
udevadm trigger
- As root
- Create a udev rule for drm (rendering) which is assigned to group āvideoā and sets permisions to 0660 (read/write for root and group members)
- tell udevadm to read the rules and execute them
If you now look at /dev/dri, both will now be owned by video.
Once this is verified, you only need to ensure your UID is a member of group video
sudo usermod -aG video your_username
Sign out and back in to make it effective.
Now launch the container
On a separate note: If you were to use the native package, all this would be done for you.
You can also customize PMS to run as your username.
My user is added to video:
arbo@nucbox:~$ groups
arbo cdrom floppy sudo audio dip video plugdev users netdev
Output of ls -al /dev/dri after using udevadm to assign ownership to those devices in /dev/dri :
arbo@nucbox:~$ ls -al /dev/dri
total 0
drwxr-xr-x 3 root root 100 Mar 30 16:12 .
drwxr-xr-x 16 root root 3360 Mar 30 16:12 ..
drwxr-xr-x 2 root root 80 Mar 30 16:12 by-path
crw-rw---- 1 root video 226, 0 Mar 30 16:12 card0
crw-rw---- 1 root video 226, 128 Mar 30 16:12 renderD128
For clarity, this is the udev rule added:
arbo@nucbox:~$ cat /lib/udev/rules.d/60-plex-hw-transcoding.rules
SUBSYSTEM=="drm", GROUP="video", MODE="0660"
Unfortunately, no change, even with rebooting. I also expanded scope of permissions to card0 and renderD128:
arbo@nucbox:~$ ls -al /dev/dri
total 0
drwxrwxrwx 3 root root 100 Mar 30 16:12 .
drwxr-xr-x 16 root root 3360 Mar 30 16:12 ..
drwxrwxrwx 2 root root 80 Mar 30 16:12 by-path
crwxrwxrwx 1 root video 226, 0 Mar 30 16:12 card0
crwxrwxrwx 1 root video 226, 128 Mar 30 16:12 renderD128
more logs?
No logs needed. I think I know what Iāll find.
Iāve been digging deeply into the transcoder.
( we just fixed a long-standing EAC3 problem )
As for changes on your machine, now it makes sense.
crwxrwxrwx 1 root video 226, 0 Mar 30 16:12 card0
crwxrwxrwx 1 root video 226, 128 Mar 30 16:12 renderD128
Both are the same group. This simplifies permission management.
Whatās the output of sudo dmesg | egrep 'i915' on your system (the host)?
[ 3.702737] i915 0000:00:02.0: [drm] VT-d active for gfx access
[ 3.702863] i915 0000:00:02.0: vgaarb: deactivate vga console
[ 3.702912] i915 0000:00:02.0: [drm] Using Transparent Hugepages
[ 3.703392] i915 0000:00:02.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[ 3.712672] i915 0000:00:02.0: firmware: failed to load i915/adlp_dmc.bin (-2)
[ 3.712684] i915 0000:00:02.0: firmware: failed to load i915/adlp_dmc.bin (-2)
[ 3.712686] i915 0000:00:02.0: Direct firmware load for i915/adlp_dmc.bin failed with error -2
[ 3.712697] i915 0000:00:02.0: firmware: failed to load i915/adlp_dmc_ver2_16.bin (-2)
[ 3.712704] i915 0000:00:02.0: firmware: failed to load i915/adlp_dmc_ver2_16.bin (-2)
[ 3.712705] i915 0000:00:02.0: Direct firmware load for i915/adlp_dmc_ver2_16.bin failed with error -2
[ 3.712707] i915 0000:00:02.0: [drm] Failed to load DMC firmware i915/adlp_dmc.bin (-ENOENT). Disabling runtime power management.
[ 3.712709] i915 0000:00:02.0: [drm] DMC firmware homepage: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
[ 3.786071] i915 0000:00:02.0: firmware: failed to load i915/adlp_guc_70.bin (-2)
[ 3.786099] i915 0000:00:02.0: firmware: failed to load i915/adlp_guc_70.bin (-2)
[ 3.786124] i915 0000:00:02.0: firmware: failed to load i915/adlp_guc_70.1.1.bin (-2)
[ 3.786139] i915 0000:00:02.0: firmware: failed to load i915/adlp_guc_70.1.1.bin (-2)
[ 3.786155] i915 0000:00:02.0: firmware: failed to load i915/adlp_guc_69.0.3.bin (-2)
[ 3.786168] i915 0000:00:02.0: firmware: failed to load i915/adlp_guc_69.0.3.bin (-2)
[ 3.786171] i915 0000:00:02.0: [drm] *ERROR* GT0: GuC firmware i915/adlp_guc_70.bin: fetch failed -ENOENT
[ 3.786190] i915 0000:00:02.0: [drm] GT0: GuC firmware(s) can be downloaded from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
[ 3.787323] i915 0000:00:02.0: [drm] GT0: GuC firmware i915/adlp_guc_70.bin version 0.0.0
[ 3.787402] i915 0000:00:02.0: [drm] *ERROR* GT0: GuC initialization failed -ENOENT
[ 3.787411] i915 0000:00:02.0: [drm] *ERROR* GT0: Enabling uc failed (-5)
[ 3.787416] i915 0000:00:02.0: [drm] *ERROR* GT0: Failed to initialize GPU, declaring it wedged!
[ 3.787778] i915 0000:00:02.0: [drm:add_taint_for_CI [i915]] CI tainted:0x9 by intel_gt_init+0xb3/0x340 [i915]
[ 3.832919] mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-ā ā ā 2-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_ops [i915])
[ 3.867092] [drm] Initialized i915 1.6.0 20230929 for 0000:00:02.0 on minor 0
[ 3.920608] fbcon: i915drmfb (fb0) is primary device
[ 3.999046] i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device
some fun errors in there.
Yep, thatās not good. Those firmware files itās complaining about missing need to live in /lib/firmware/i915. The dmesg output actually gives the download locations for them,
Hereās the direct link to the files (use the āplainā links at the end of the table):
Placing the adlp dmc and guc firmware files in /lib/firmware/i915 should allow them to be loaded at boot.
If youāre using a Debian/Ubuntu-based distribution you may be able to install the appropriate firmware files by installing the linux-firmware package:
sudo apt install linux-firmware
It installed as firmware-linux (debian trixie by the way)
and the dmesg output now reflects:
arbo@nucbox:~$ sudo dmesg | egrep 'i915'
[ 3.493504] i915 0000:00:02.0: [drm] Found ALDERLAKE_P/RPL-U (device ID a7ad) display version 13.00 stepping E0
[ 3.494023] i915 0000:00:02.0: [drm] VT-d active for gfx access
[ 3.494158] i915 0000:00:02.0: vgaarb: deactivate vga console
[ 3.494194] i915 0000:00:02.0: [drm] Using Transparent Hugepages
[ 3.494627] i915 0000:00:02.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=io+mem:owns=io+mem
[ 3.505989] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/adlp_dmc.bin (v2.20)
[ 3.508335] i915 0000:00:02.0: [drm] GT0: GuC firmware i915/adlp_guc_70.bin version 70.36.0
[ 3.508345] i915 0000:00:02.0: [drm] GT0: HuC firmware i915/tgl_huc.bin version 7.9.3
[ 3.523651] i915 0000:00:02.0: [drm] GT0: HuC: authenticated for all workloads
[ 3.524681] i915 0000:00:02.0: [drm] GT0: GUC: submission enabled
[ 3.524695] i915 0000:00:02.0: [drm] GT0: GUC: SLPC enabled
[ 3.525134] i915 0000:00:02.0: [drm] GT0: GUC: RC enabled
[ 3.526458] mei_pxp 0000:00:16.0-fbf6fcf1-96cf-4e2e-a6a6-1bab8cbe36b1: bound 0000:00:02.0 (ops i915_pxp_tee_component_ops [i915])
[ 3.526774] i915 0000:00:02.0: [drm] Protected Xe Path (PXP) protected content support initialized
[ 3.526783] mei_hdcp 0000:00:16.0-b638ab7e-94e2-4ea2-ā ā ā 2-d1c54b627f04: bound 0000:00:02.0 (ops i915_hdcp_ops [i915])
[ 3.550832] [drm] Initialized i915 1.6.0 for 0000:00:02.0 on minor 0
[ 3.596910] fbcon: i915drmfb (fb0) is primary device
[ 3.664347] i915 0000:00:02.0: [drm] fb0: i915drmfb frame buffer device
I rebooted the host. Still no transcoding.
This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.

