Minor cleanup of the init script and the readme

This commit is contained in:
aptalca 2021-04-20 15:16:45 -04:00
parent 91cebf6878
commit 67bc5f2376
2 changed files with 36 additions and 74 deletions

View File

@ -1,61 +1,30 @@
# jellyfin-amd - Docker mode for Jellyfin
# jellyfin-amd - Docker mod for Jellyfin
This mode adds the mesa libraries (v20.1+) needed for hardware encoding (VAAPI) on AMD GPUs to the Jellyfin Docker container.
This mod adds the mesa libraries (v20.1+) needed for hardware encoding (VAAPI) on AMD GPUs to the Jellyfin Docker container (`latest` tag).
## Docker compose
The docker-compose file needs a `devices` entry for jellyfin ([Official Documentation](https://jellyfin.org/docs/general/administration/hardware-acceleration.html))
```
---
version: "2.1"
services:
jellyfin:
image: linuxserver/jellyfin
container_name: jellyfin
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- UMASK=<022> #optional
- DOCKER_MODS=pascalminder/jellyfin-amd:jellyfin-amd
volumes:
- /path/to/library:/config
- /path/to/tvseries:/data/tvshows
- /path/to/movies:/data/movies
- /opt/vc/lib:/opt/vc/lib #optional
ports:
- 8096:8096
- 8920:8920 #optional
- 7359:7359/udp #optional
- 1900:1900/udp #optional
devices:
# VAAPI Devices
- "/dev/dri/renderD128:/dev/dri/renderD128"
- "/dev/dri/card0:/dev/dri/card0"
restart: unless-stopped
```
To enable, you need to add the 2 following entries:
- Device mapping for `/dev/dri`
- docker-compose:
```yaml
devices:
- /dev/dri:/dev/dri
```
- docker cli
```sh
--device /dev/dri:/dev/dri
```
- Environment Variable: `DOCKER_MODS=linuxserver/mods:jellyfin-amd`
- docker-compose:
```yaml
environment:
- DOCKER_MODS=linuxserver/mods:jellyfin-amd
```
- docker cli:
```sh
-e DOCKER_MODS=linuxserver/mods:jellyfin-amd
```
## Docker cli
```
docker run -d \
--name=jellyfin \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Europe/London \
-e UMASK=<022> `#optional` \
-e DOCKER_MODS=pascalminder/jellyfin-amd:jellyfin-amd
-p 8096:8096 \
-p 8920:8920 `#optional` \
-p 7359:7359/udp `#optional` \
-p 1900:1900/udp `#optional` \
-v /path/to/library:/config \
-v /path/to/tvseries:/data/tvshows \
-v /path/to/movies:/data/movies \
-v /opt/vc/lib:/opt/vc/lib `#optional` \
--device /dev/dri/renderD128:/dev/dri/renderD128 \
--device /dev/dri/card0:/dev/dri/card0 \
--restart unless-stopped \
linuxserver/jellyfin
```
If adding multiple mods, enter them in an array separated by `|`, such as `DOCKER_MODS=linuxserver/mods:jellyfin-amd|linuxserver/mods:jellyfin-mod2`
## Settings in Jellyfin
Under server administration in `Server > Playback` the `Hardware acceleration` can be set to `Video Acceleration API (VAAPI)` and the `VA API Device` has to be set to the device given in the Docker configuration. For example `/dev/dri/renderD128`.

View File

@ -2,32 +2,25 @@
# Determine if setup is needed
if [ ! -f "/usr/bin/apt" ]; then
echo "**** Image is not Ubuntu, skipping opencl-intel install ****"
exit 0
echo "**** Image is not Ubuntu, skipping opencl-intel install ****"
exit 0
fi
pkgs='mesa-vdpau-drivers mesa-va-drivers mesa-vdpau-drivers libdrm-radeon1'
install=false
for pkg in $pkgs; do
status="$(dpkg-query -W --showformat='${db:Status-Status}' "$pkg" 2>&1)"
if [ ! $? = 0 ] || [ ! "$status" = installed ]; then
install=true
break
fi
status="$(dpkg-query -W --showformat='${db:Status-Status}' "$pkg" 2>&1)"
if [ ! $? = 0 ] || [ ! "$status" = installed ]; then
install=true
break
fi
done
if "$install"; then
echo "**** Installing mesa ****"
apt-get update
apt-get install -y \
gpg
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F63F0F2B90935439
echo "deb http://ppa.launchpad.net/kisak/kisak-mesa/ubuntu focal main" > /etc/apt/sources.list.d/kisak-ubuntu-kisak-mesa-bionic.list
apt-get update
apt-get install -y $pkgs
echo "**** Installing mesa ****"
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F63F0F2B90935439
echo "deb http://ppa.launchpad.net/kisak/kisak-mesa/ubuntu focal main" > /etc/apt/sources.list.d/kisak-mesa-focal.list
apt-get update
apt-get install -y $pkgs
fi