From 7f57d962210a2f4443b8a3b621cd6ffa260413cf Mon Sep 17 00:00:00 2001 From: thelamer Date: Thu, 9 Jan 2020 19:35:46 -0800 Subject: [PATCH] docs for pi support --- README.md | 22 ++++++++++++++++++++++ readme-vars.yml | 20 +++++++++++++++++++- 2 files changed, 41 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e21e7df..44cdd3a 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,9 @@ docker create \ -v :/data/tvshows \ -v :/data/movies \ -v :/transcode `#optional` \ + -v /opt/vc/lib:/opt/vc/lib `#optional` \ --device /dev/dri:/dev/dri `#optional` \ + --device /dev/vchiq:/dev/vchiq `#optional` \ --restart unless-stopped \ linuxserver/jellyfin ``` @@ -101,11 +103,13 @@ services: - :/data/tvshows - :/data/movies - :/transcode #optional + - /opt/vc/lib:/opt/vc/lib #optional ports: - 8096:8096 - 8920:8920 #optional devices: - /dev/dri:/dev/dri #optional + - /dev/vchiq:/dev/vchiq #optional restart: unless-stopped ``` @@ -125,7 +129,9 @@ Container images are configured using parameters passed at runtime (such as thos | `-v /data/tvshows` | Media goes here. Add as many as needed e.g. `/data/movies`, `/data/tv`, etc. | | `-v /data/movies` | Media goes here. Add as many as needed e.g. `/data/movies`, `/data/tv`, etc. | | `-v /transcode` | Path for transcoding folder, *optional*. | +| `-v /opt/vc/lib` | Path for Rasberry Pi OpenMAX libs *optional*. | | `--device /dev/dri` | Only needed if you want to use your Intel GPU for hardware accelerated video encoding (vaapi). | +| `--device /dev/vchiq` | Only needed if you want to use your Rasberry Pi OpenMax video encoding (Bellagio). | ## Environment variables from files (Docker secrets) @@ -160,18 +166,33 @@ Webui can be found at `http://:8096` More information can be found in their official documentation [here](https://github.com/MediaBrowser/Wiki/wiki) . +## Hardware Acceleration + +### Intel + Hardware acceleration users for Intel Quicksync will need to mount their /dev/dri video device inside of the container by passing the following command when running or creating the container: ```--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 jellyfin docker container. +### OpenMAX (Rasberry Pi) + +Hardware acceleration users for Rasberry 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/vchiq:/dev/vchiq +-v /opt/vc/lib:/opt/vc/lib +``` + ## Support Info @@ -238,6 +259,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **09.01.20:** - Add Pi OpenMax support. * **02.10.19:** - Improve permission fixing for render & dvb devices. * **31.07.19:** - Add AMD drivers for vaapi support on x86. * **13.06.19:** - Add Intel drivers for vaapi support on x86. diff --git a/readme-vars.yml b/readme-vars.yml index 1e0bd59..372c3f3 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -34,9 +34,11 @@ opt_param_env_vars: opt_param_usage_include_vols: true opt_param_volumes: - { vol_path: "/transcode", vol_host_path: "", desc: "Path for transcoding folder, *optional*." } + - { vol_path: "/opt/vc/lib", vol_host_path: "/opt/vc/lib", desc: "Path for Rasberry Pi OpenMAX libs *optional*." } opt_param_device_map: true opt_param_devices: - { device_path: "/dev/dri", device_host_path: "/dev/dri", desc: "Only needed if you want to use your Intel GPU for hardware accelerated video encoding (vaapi)." } + - { device_path: "/dev/vchiq", device_host_path: "/dev/vchiq", desc: "Only needed if you want to use your Rasberry Pi OpenMax video encoding (Bellagio)." } opt_param_usage_include_ports: true opt_param_ports: - { external_port: "8920", internal_port: "8920", port_desc: "Https webUI (you need to setup your own certificate)." } @@ -49,20 +51,36 @@ app_setup_block: | More information can be found in their official documentation [here](https://github.com/MediaBrowser/Wiki/wiki) . + ## Hardware Acceleration + + ### Intel + Hardware acceleration users for Intel Quicksync will need to mount their /dev/dri video device inside of the container by passing the following command when running or creating the container: ```--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 jellyfin docker container. + + ### OpenMAX (Rasberry Pi) + + Hardware acceleration users for Rasberry 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/vchiq:/dev/vchiq + -v /opt/vc/lib:/opt/vc/lib + ``` # changelog changelogs: + - { date: "09.01.20:", desc: "Add Pi OpenMax support." } - { date: "02.10.19:", desc: "Improve permission fixing for render & dvb devices." } - { date: "31.07.19:", desc: "Add AMD drivers for vaapi support on x86." } - { date: "13.06.19:", desc: "Add Intel drivers for vaapi support on x86." }