Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarify Linux RKMPP docker instructions #975

Merged
merged 3 commits into from
Jul 23, 2024

Conversation

felix920506
Copy link
Member

Clarify that the normal Linux instructions are also needed when installing via Docker

Fixes jellyfin/jellyfin#11475

@@ -177,6 +179,8 @@ Root permission is required.

### Configure With Linux Virtualization

Before proceeding, please complete the [Configure on Linux Host](#configure-on-linux-host) section above.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think link to the OpenCL runtime section would be enough

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More precisely:

Install the ARM Mali OpenCL runtime (libmali) on host:

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't they also need steps 2 and 3? Those look like required steps to me as they are verifying things like kernel version and configuring permissions for applications to use the GPU.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For RK3588 the earliest BSP supports that SoC is the 5.10 LTS.

The user uid used in this section is not necessarily the "jellyfin" created in that section, and users will still have permission errors if they just copied what is provided. This is an advanced-user only document so we don't have to list everything in detail IMO.

What's more, a lot of vendor-provided kernels enabled the rockchip hack to let every user access the rockchip hardware transcoding devices and makes even the permission configuration unnecessary.

You can add on sentence like if you are facing permission issues, please check if the user used in the docker container has required permissions described in the previous section, and provide the link.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The --privileged docker flag already avoids permission issues. If the user doesn't want to use this, they can still use getent group video | cut -d: -f3 and --group-add="122" \ # Change this to match your "video" host group id and remove this comment.

Copy link

@BergLucas BergLucas Jun 23, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi,

I just wanted to say that I still had permission issues with the --privileged docker flag set. From what I read in the docker documentation, the --privileged docker flag just allows to expose more files from the host to the container and gives more access to the container. However, the permissions of the exposed files from the host still apply so if the container user doesn't have the right UID or GID, he won't be able to access the exposed files.

In the end, I decided to follow most of the steps from the section Configure On Linux Host in order to create a jellyfin user and give the right permissions to the devices. Then, in docker, I just used the --group-add="video" and --privileged docker flags and specified the UID and GID of the jellyfin user and everything worked.

@@ -134,6 +134,8 @@ Root permission is required.

4. Add the `jellyfin` user to the `render` and `video` group, then restart the `jellyfin` service:

You can skip this step if you intend to run Jellyfin in a container (eg. Docker)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And then we can remove this as this section is no longer related to docker

@nyanmisaka
Copy link
Member

This DEB package contains both Mali firmware and userspace driver. For official Docker images that have pre-installed DEB packages, users only need to install the DEB package on the host for firmware. So just link to Configure On Linux Host in this step.

https://github.com/jellyfin/jellyfin.org/blob/master/docs/general/administration/hardware-acceleration/rockchip.md?plain=1#L212

@felix920506
Copy link
Member Author

I think it would be a good idea to tell users to install that anyway so that we get less complaints from 3rd party containers

@felix920506 felix920506 requested review from gnattu and nyanmisaka July 20, 2024 12:44
@felix920506 felix920506 merged commit 940ddaa into jellyfin:master Jul 23, 2024
7 checks passed
@felix920506 felix920506 deleted the rkmpp-docs-linux-fix branch July 23, 2024 07:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Issue]: RKMPP - Missing package in Docker, or missing documentation step?
4 participants