Server Version#: N/A
Player Version#: N/A
I wrote this post over on reddit and hope it can be helpful for anyone looking for this information in the future as I was some time ago, feel free to ask any questions:
Server Version#: N/A
Player Version#: N/A
I wrote this post over on reddit and hope it can be helpful for anyone looking for this information in the future as I was some time ago, feel free to ask any questions:
Nice definition. That just connected a lot of the dots for me with Docker.
May I make a suggestion?
If you use the GID of the entries as they exist, you won’t need to alter them.
An alternative is to permanently add the UID to the group
Also, as FYI, the native app installer writes the udev rules to so that no permission changes in /dev are ever needed.
PUID and GUID flags are just in reference to this: https://drfrankenstein.co.uk/creating-users-and-obtaining-their-ids/
Understood but since I wrote the installer for Synology, I know how the udev mechanism works and how you can leverage it so you don’t need to fuss with running any root scripts at system boot.
Was only offering.
During installation, I do this:
fi
if [ ! -f /lib/udev/rules.d/60-fix-plex-hw-transcoding.rules ]; then
echo 'SUBSYSTEM=="drm", GROUP="video"' > /lib/udev/rules.d/60-fix-plex-hw-transcoding.rules
elif [ "`grep -c drm /lib/udev/rules.d/60-fix-plex-hw-transcoding.rules`" -eq 0 ]; then
echo 'SUBSYSTEM=="drm", GROUP="video"' > /lib/udev/rules.d/60-fix-plex-hw-transcoding.rules
fi
If you wish to copy what I I did, or examine the /dev/dri/renderD128 directly with a stat call to get the group, you can do that too which is even cleaner and what I do in the desktop systems.
I just loaded up the latest plexinc docker container on my Synology and, at least from what I can tell, HW transcoding is working out of the box. Am I right or is it possible I made some changes a while ago that I don’t remember?
There must be a change leftover from something because, unless Engineering changed it without me knowing, the official docker release does not include hardware transcoding mapping in the configuration.
Just tried this again…if I give the Plex container high privs (root) then it seems to use the hardware transcoding right out of the box. Unless I’m still mistaken?
Synology uses udev for device access control.
If the username used is a member of the group assigned to the hardware inode
then unprivileged will work.
Ahh yes, that is it…seems like a simpler approach perhaps? Thanks for the detail.
Welcome!
One of my little benefits being the guy who does all the packaging for Synology ![]()
Using udev allowed PMS to be removed from the administrators group as well.
That lowered the overall privilege level requirements and resulted in increased privacy for all concerned.
So I have a DS1817+ and am familiar on how Plex and HW transcoding works with docker containers. I have a working setup with my Debian NAS. Now, I’m trying to make it work with this Synology NAS but it seems that the /dev/dri devices is not found. Why? Here’s a screenshot:
![]()
I mean /dev is there but the subfolder device dri is not.
The DS1817+, which uses the Atom C2538 CPU, does not have Quick Sync Video capability in the CPU itself.
The kernel, upon boot, determines if the ASIC is in the CPU. If it is, it creates the inodes in /dev/dri.
Per Synology:
DS1817+ Intel Atom C2538 Quad Core 4 Yes Avoton DDR3 2/8 GB
So, for the less docker knowledgeable people, what do i need to add to my docker compose file or the PGID/PUID assigned to the container do i need to change so that the container doesn’t need “privilege: true” and i don’t need to run the script at boot time?
For those processors with Quick Sync Video capability (J3355 and J3455), you need the PGID of the “video” group. Determining this value will require accessing the shell level and inspecting /dev/dri.
What’s wrong with running the script?
I’m really going to be a P.I.T.A here.
Why the push to use Docker on Synology?
I assert, this is one of those situations when NOT to do something just because it’s possible. (Jurassic Park theme)
Please do remember, Docker was created and is intended to be used on platforms where rapid redeployment are required or when a native package doesn’t already exist.
I’ve also bought a Synology NAS recently and stumbled over this thread while researching to get Plex packed into Docker. Just to leave my two cents here: Honestly I’m also more tending using Docker in this scenario - mainly for three reasons:
But please don’t get me wrong: That’s my view of perspective as of now and I really appreciate the work done by @ChuckPa to maintain a Synology package a lot!
Once the Plex Synology package was deployed, I believe there is no automated update procedure? Maybe that is a criteria for some people to have a Plex-package-repository for rolling out (new) releases.
Are any of you aware that as of PMS 1.15.4.994, I lowered the privilege level of Plex on Synology NAS boxes? It’s just a normal user now – fully dependent on r/w access granted by the admin in Shared Folders .
I do see the advantage of having an auto-update.
Synology is SLOW to accept changes from Plex (we notify them of every update)
Isn’t it possible to make a own repository to update independently, hosted at Plex? (There are also custom package repositories out there)
Yes, read that prior posting. But I’ve forgot to take that into account of posting. But yes, valid point. So I’d say I have 2.5 reasons instead of 3
Using mount points with Docker you can isolate it even a bit more, even when using user privileges now.
I didn’t want to criticize you in any way or so - please don’t understand me wrong. I just want to give some ideas what my personal reasons are to go the docker-way.
8 posts were split to a new topic: Creating a Synology repository for Plex