My Openmediavault System is OMV5.3.9-1 with Linux 5.4.0-0.bpo.-amd64 kernel and NVIDIA GeForce GTX1660. Plex hardware transcoding works for me based on the following (If Plex doesn't hardware transcode, check this video) :
Step 1: Install the NVIDIA driver based on the second option (How to install NVIDIA driver by using the official nvidia.com package step by step instructions).
(If you are installing another bpo kernel, you will need to reinstall the Nvidia driver compilation prerequisite: apt -y install linux-headers-$(uname -r) )
Step 2: Install the Curl command-line utility:
Step 3: Installing the NVIDIA Container Toolkit:
# Add the package repositories
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
then
sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
Step 4: Installing nvidia-container-runtime:
sudo apt-get install nvidia-container-runtime
Step 5: Edit /etc/nvidia-container-runtime/config.toml eg. nano and replace "@/sbin/ldconfig" with "/sbin/ldconfig", then save the file. (Thanks to lyon667!)
Step 6: If you want NVIDIA to be the default Docker runtime, modify the contents of /etc/docker/daemon.json to:
{
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
},
"default-runtime": "nvidia"
}
Step 7:
sudo systemctl restart docker
Step 8: Install linuxserver/plex
For example, it looks like this to me:
docker create \
--name=Plex \
--net=host \
-e PUID=1000 \
-e PGID=100 \
-e VERSION=public \
-e NVIDIA_VISIBLE_DEVICES=GPU-s96kfsd-3sdf0-g98f-7164-cd76d697872e \
-e NVIDIA_DRIVER_CAPABILITIES=compute,video,utility \
-v /srv/dev-disk-by-label-XXXXX/Movies:/Movies \
-v /srv/dev-disk-by-label-XXXXX/AppData/Plex:/config \
--restart unless-stopped \
linuxserver/plex
Alles anzeigen
Maybe it helps.