From d00602b70fb1c86da0deda891299caaf3c80099f Mon Sep 17 00:00:00 2001 From: Roxedus Date: Mon, 12 Feb 2024 19:18:57 +0100 Subject: [PATCH 1/2] Switch to readme_hwaccel --- README.md | 47 ++++++++++++++++++++++++++++++++++------------- readme-vars.yml | 24 +++++++++++------------- 2 files changed, 45 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 247e487d..eced9b98 100644 --- a/README.md +++ b/README.md @@ -72,35 +72,55 @@ Webui can be found at `http://:8096` Emby has very complete and verbose documentation located [here](https://github.com/MediaBrowser/Wiki/wiki) . -Hardware acceleration users for Intel Quicksync and AMD VAAPI will need to mount their /dev/dri video device inside of the container by passing the following command when running or creating the container: +### Hardware Acceleration Enhancements -```--device=/dev/dri:/dev/dri``` +This list out the enhancements we have explicit made for hardware acceleration in this image. -We will automatically ensure the abc user inside of the container has the proper permissions to access this device. - -Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: - -https://github.com/NVIDIA/nvidia-docker - -We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime `--runtime=nvidia` and add an environment variable `-e NVIDIA_VISIBLE_DEVICES=all` (can also be set to a specific gpu's UUID, this can be discovered by running `nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv` ). NVIDIA automatically mounts the GPU and drivers from your host into the emby docker. +#### OpenMAX (Raspberry Pi) -### OpenMAX (Raspberry Pi) +Hardware acceleration users for Raspberry Pi MMAL/OpenMAX will need to mount their `/dev/vcsm` and `/dev/vchiq` video devices inside of the container and their system OpenMax libs by passing the following options when running or creating the container: -Hardware acceleration users for Raspberry Pi OpenMAX will need to mount their /dev/vchiq video device inside of the container and their system OpenMax libs by passing the following options when running or creating the container: ``` +--device=/dev/vcsm:/dev/vcsm --device=/dev/vchiq:/dev/vchiq -v /opt/vc/lib:/opt/vc/lib ``` -### V4L2 (Raspberry Pi) +#### V4L2 (Raspberry Pi) + +Hardware acceleration users for Raspberry Pi V4L2 will need to mount their `/dev/video1X` devices inside of the container by passing the following options when running or creating the container: -Hardware acceleration users for Raspberry Pi V4L2 will need to mount their /dev/video1X devices inside of the container by passing the following options when running or creating the container: ``` --device=/dev/video10:/dev/video10 --device=/dev/video11:/dev/video11 --device=/dev/video12:/dev/video12 ``` +### Hardware Acceleration + +Many desktop application will need access to a GPU to function properly and even some Desktop Environments have compisitor effects that will not function without a GPU. This is not a hard requirement and all base images will function without a video device mounted into the container. + +#### Intel/ATI/AMD + +To leverage hardware acceleration you will need to mount /dev/dri video device inside of the container. + +```text +--device=/dev/dri:/dev/dri +``` + +We will automatically ensure the abc user inside of the container has the proper permissions to access this device. + +#### Nvidia + +Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: +https://github.com/NVIDIA/nvidia-docker + +We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime `--runtime=nvidia` and add an environment variable `-e NVIDIA_VISIBLE_DEVICES=all` (can also be set to a specific gpu's UUID, this can be discovered by running `nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv` ). NVIDIA automatically mounts the GPU and drivers from your host into the container. + +#### Arm Devices + +Best effort is made to install tools to allow mounting in /dev/dri on Arm devices. In most cases if /dev/dri exists on the host it should just work. If running a Raspberry Pi 4 be sure to enable `dtoverlay=vc4-fkms-v3d` in your usercfg.txt. + ## Usage To help you get started creating a container from this image you can either use docker-compose or the docker cli. @@ -339,6 +359,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **12.02.24:** - Use universal hardware acceleration blurb * **19.01.24:** - Fix tonemapping so it's done with hw acceleration. * **06.07.23:** - Deprecate armhf. As announced [here](https://www.linuxserver.io/blog/a-farewell-to-arm-hf) * **08.06.23:** - Fix package extraction so it doesn't change /tmp perms. diff --git a/readme-vars.yml b/readme-vars.yml index f4d27d67..21740af2 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -53,36 +53,34 @@ app_setup_block: | Emby has very complete and verbose documentation located [here](https://github.com/MediaBrowser/Wiki/wiki) . - Hardware acceleration users for Intel Quicksync and AMD VAAPI will need to mount their /dev/dri video device inside of the container by passing the following command when running or creating the container: + ### Hardware Acceleration Enhancements - ```--device=/dev/dri:/dev/dri``` + This list out the enhancements we have explicit made for hardware acceleration in this image. - We will automatically ensure the abc user inside of the container has the proper permissions to access this device. + #### OpenMAX (Raspberry Pi) - Hardware acceleration users for Nvidia will need to install the container runtime provided by Nvidia on their host, instructions can be found here: + Hardware acceleration users for Raspberry Pi MMAL/OpenMAX will need to mount their `/dev/vcsm` and `/dev/vchiq` video devices inside of the container and their system OpenMax libs by passing the following options when running or creating the container: - https://github.com/NVIDIA/nvidia-docker - - We automatically add the necessary environment variable that will utilise all the features available on a GPU on the host. Once nvidia-docker is installed on your host you will need to re/create the docker container with the nvidia container runtime `--runtime=nvidia` and add an environment variable `-e NVIDIA_VISIBLE_DEVICES=all` (can also be set to a specific gpu's UUID, this can be discovered by running `nvidia-smi --query-gpu=gpu_name,gpu_uuid --format=csv` ). NVIDIA automatically mounts the GPU and drivers from your host into the emby docker. - - ### OpenMAX (Raspberry Pi) - - Hardware acceleration users for Raspberry Pi OpenMAX will need to mount their /dev/vchiq video device inside of the container and their system OpenMax libs by passing the following options when running or creating the container: ``` + --device=/dev/vcsm:/dev/vcsm --device=/dev/vchiq:/dev/vchiq -v /opt/vc/lib:/opt/vc/lib ``` - ### V4L2 (Raspberry Pi) + #### V4L2 (Raspberry Pi) + + Hardware acceleration users for Raspberry Pi V4L2 will need to mount their `/dev/video1X` devices inside of the container by passing the following options when running or creating the container: - Hardware acceleration users for Raspberry Pi V4L2 will need to mount their /dev/video1X devices inside of the container by passing the following options when running or creating the container: ``` --device=/dev/video10:/dev/video10 --device=/dev/video11:/dev/video11 --device=/dev/video12:/dev/video12 ``` + +readme_hwaccel: true # changelog changelogs: + - {date: "12.02.24:", desc: "Use universal hardware acceleration blurb"} - {date: "19.01.24:", desc: "Fix tonemapping so it's done with hw acceleration."} - {date: "06.07.23:", desc: "Deprecate armhf. As announced [here](https://www.linuxserver.io/blog/a-farewell-to-arm-hf)"} - {date: "08.06.23:", desc: "Fix package extraction so it doesn't change /tmp perms."} From d52c4bf6879686b960f0d70cabd220785fdb15b3 Mon Sep 17 00:00:00 2001 From: Roxedus Date: Tue, 13 Feb 2024 09:42:22 +0100 Subject: [PATCH 2/2] Update wording --- README.md | 2 +- readme-vars.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index eced9b98..c74d054c 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ Emby has very complete and verbose documentation located [here](https://github.c ### Hardware Acceleration Enhancements -This list out the enhancements we have explicit made for hardware acceleration in this image. +This section lists the enhancements we have made for hardware acceleration in this image specifically. #### OpenMAX (Raspberry Pi) diff --git a/readme-vars.yml b/readme-vars.yml index 21740af2..5fc82f5d 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -55,7 +55,7 @@ app_setup_block: | ### Hardware Acceleration Enhancements - This list out the enhancements we have explicit made for hardware acceleration in this image. + This section lists the enhancements we have made for hardware acceleration in this image specifically. #### OpenMAX (Raspberry Pi)