diff --git a/Transcodes/Manual-Transcoding.md b/Transcodes/Manual-Transcoding.md index 3250ed3..9c73613 100644 --- a/Transcodes/Manual-Transcoding.md +++ b/Transcodes/Manual-Transcoding.md @@ -482,6 +482,41 @@ leave the container in a broken state where Emby refuses to start at all. # Re-adding the mount after a clean start works reliably. ``` +### Emby With NVIDIA GPU — bind-propagation=shared Fails to Start + +`--runtime=nvidia` combined with a `NVIDIA_VISIBLE_DEVICES` environment variable conflicts +with `bind-propagation=shared`. Docker fails during container init with: + +``` +OCI runtime create failed: runc create failed: unable to start container process: +error during container init: error jailing process inside rootfs: +open /proc/self/mountinfo: no such file or directory +``` + +`--runtime=nvidia` alone (no `NVIDIA_VISIBLE_DEVICES` env var) does NOT cause this. +The conflict requires both. + +**Root cause:** `NVIDIA_VISIBLE_DEVICES` triggers the NVIDIA container runtime to bind +mount CUDA libraries and device nodes into the container namespace. This GPU device setup +interferes with the mount namespace initialization that `bind-propagation=shared` requires. + +**Fix — replace the NVIDIA env var approach with the `--gpus` flag:** + +In the unRAID Docker template for Emby: + +1. **Extra Parameters** — remove `--runtime=nvidia`, add `--gpus` with the GPU UUID: + ``` + --gpus device=GPU-62e1659d-1ed4-935f-3df3-4bb4339438f1 --pids-limit=0 \ + --mount type=bind,source=/mnt/ram-transcode,target=/ext-ram-transcode,bind-propagation=shared + ``` + +2. **Variables** — remove the `NVIDIA_VISIBLE_DEVICES` variable entirely. + The `--gpus` flag handles GPU assignment without the env var. + +`--gpus device=UUID` uses Docker's native GPU device flag (default runtime) rather than +the full NVIDIA container runtime setup. The container still gets GPU access; it just +skips the device mount phase that conflicts with `bind-propagation=shared`. + ### Increasing Ramdisk Size After Initial Setup ```bash