Synology DS1019+
DSM 7.2-64561
I’m running plexinc/pms-docker. (I’ve tried linuxserver/plex image as well but the same issue persists)
I have a docker compose file that I use and it has “- /dev/dri:/dev/dri” added and when the container is started I see “45-plex-hw-transcode-and-connnected-tuner: executing…” but I still can’t transcode anything.
I can’t get anything to transcode. I’ve followed multiple tutorials and I’ve tried everything I know how to do, but the error I continue to get in the plex logs is
[FFMPEG] - Cannot load libcuda.so.1
[FFMPEG] - Could not dynamically load CUDA
[FFMPEG] - Failed to initialise VAAPI connection: -1 (unknown libva error).
I used to be able to transcode, but I’m honestly not sure how long this issue has been going on, I just started investigating recently because of high CPU usage.
I’ve used HW transcoding before on this NAS so I know it’s capable, but also verified using the links provided on https://support.plex.tv/articles/115002178853-using-hardware-accelerated-streaming/
Any help would be greatly appreciated!
Hey Chuck!
It’s a bind mount to the folder containing my kernel device. I used this article as a guide.
Plex Media Server Logs_2023-06-06_15-55-54.zip (2.5 MB)
I’m attaching server logs. Line 6926-6937 are where I see the error I posted about
Um… NO.
Bind mount is a filesystem mount.
You want the device node mount
--device=/dev/dri:/dev/dri
Different privilege level for ioctl() . Bind does not provide it.
Chuck,
My apologies. I do have the --device prefix for it, I attached the Plex compose file I use.
thank you. MUCH better.
Now, is UID 1031 a member of the group which owns /dev/dri/renderDxxx ?
PMS relies on udev group permissions to avoid any requirement to run as root.
[chuck@lizum docker.2008]$ groups $(grep 1000 /etc/passwd | awk -F: '{print $1}')
chuck : chuck adm cdrom sudo dip video plugdev render lpadmin lxd sambashare
[chuck@lizum docker.2009]$ ls -la /dev/dri
total 0
drwxr-xr-x 3 root root 140 May 31 21:10 ./
drwxr-xr-x 21 root root 5200 Jun 2 18:10 ../
drwxr-xr-x 2 root root 120 May 31 21:10 by-path/
crw-rw----+ 1 root render 226, 0 May 31 21:10 card0
crw-rw----+ 1 root render 226, 1 Jun 6 10:54 card1
crw-rw----+ 1 root render 226, 128 May 31 21:10 renderD128
crw-rw----+ 1 root render 226, 129 May 31 21:10 renderD129
[chuck@lizum docker.2010]$
Chuck, is this what you’re looking for?
Stupid me.
You’re doing this on Synology.
See the group “videodriver” ?
from the command line, grep videodriver /etc/group
That’s the GID you need to use.
Syno won’t permit anything else.
This is also why Docker on DSM 7 is a PITA and the native app works better.
(I had to integrate the videodriver permission request into the package installation otherwise I had no access to it)
Do not be surprised if it continues to fail on DSM 7. They made it so tight that **** squeaks LOL
Why are you using Docker on Syno?
Please don’t tell me because it’s easier.


The main reason for switching from Syno package Plex to docker was for auto updates to Plex, and I have about 13 other docker containers and the tiny shred of A.D.D. in me liked the idea.
Is there any way of auto-updating Syno Plex package?
There you go. There’s the GID.
Yes, you can auto update.
-
A Task Scheduler , user-script can
– Download the file (use whichever tool you like; MrWorf? , etc)
– Put it somewhere
-
since this is running as user root (IMPORTANT)
-
synopkg install /path/to/filename.spk
-
synopkg restart PlexMediaServer
related info: What I have to do in the SPK file.
[chuck@lizum conf.2019]$ cat resource
{
"video-driver": {},
"port-config": "conf/PlexMediaServer.sc",
"data-share": {
"shares": [{
"name": "PlexMediaServer",
"permission": {
"rw": ["PlexMediaServer"]
}
}],
"once": "false"
}
}
[chuck@lizum conf.2020]$
If that’s the case then I’ll just plan on migrating Plex from Docker .spk, much less headache overall.
IMHO,
Running native and then installing (Manual Install in Package Center) once a release has proven itself stable
makes the most sense to me.
I keep the last 5-10 SPK files anyway (they are only 85 MB each)… way less than a video file
If you want to migrate what you have from Docker → Native, I have the automation / how-to all set.
It’s not too difficult and only a few commands at the SSH command line.
That would be great I’d love that info, thanks!
I did the above, all steps went as expected, but plex package starts, runs for 5 seconds then stops. I’m going to repeat the process above because on Step 1 I installed the package but unchecked the Run after installation option.
Realized that I didn’t run the bash task as root.
1 Like
Plex migrated successfully! It’s now running using DSM instead of Docker.
I am still getting the same error as before when attempting to transcode, in the log it’s lines 8682-8697.
I had followed a blog post that had me change permissions for the /dev/dri folder, I’m not sure if that’s affecting this now or not.
Plex Media Server.log (1.6 MB)
You have an ApolloLake CPU. (J3455)
There was a regression.
There is this file: (This is the Engineer’s build which will be in the next PMS release)
and this driver.
The i965 driver goes in “Cache/va-dri-linux-x86_64” under “Plex Media Server”
Then install the file.
Make certain you aren’t calling out the VaapiDriver="i965" in your Preferences.
(been a long day – think I got it right)
[chuck@glockner Cache.2005]$ cd va-dri-linux-x86_64/
[chuck@glockner va-dri-linux-x86_64.2006]$ ls -la
total 9176
drwxr-xr-x 2 plex plex 69 May 30 12:00 ./
drwxr-xr-x 9 plex plex 4096 Jun 6 22:38 ../
-rwxrwxrwx 1 root root 7815088 May 30 10:49 i965_drv_video.so*
-rw-r--r-- 1 root root 1576222 May 30 12:00 i965_drv_video.zip
[chuck@glockner va-dri-linux-x86_64.2007]$
The upcoming build with all these fixes properly integrated are coming up shortly.
You can use build .6999 if you need to
All ship shape and working? (Looks it from here)
PS, might want to improve that Player quality setting …
2 Mbps is kinda rough LOL