Docs gap: Kubernetes device-plugin GPU passthrough breaks OpenCL (tone-mapping) while VAAPI works, due to /dev/dri/by-path/* ownership
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 76/100
- Issue type
- Documentation
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- docker, kubernetes
- Domain
- documentation, infrastructure
Research direction
Start in the hardware-acceleration documentation and review the guidance for Kubernetes device-plugin setups. Document the /dev/dri/by-path/* ownership check for cases where VAAPI/QSV work but OpenCL-dependent features fail with ffmpeg exit 237, and explain that ATTACHED_DEVICES_PERMS=/dev/dri covers the paths. Done means the troubleshooting guidance includes this cause and fix.
Written by the indexing model from the issue text.
Description
Is there an existing issue for this?
- I have searched the existing issues
Description
Running this image under Kubernetes with a device plugin (e.g. Intel's intel-device-plugins-for-kubernetes), instead of a plain Docker --device /dev/dri bind mount, breaks OpenCL while VAAPI/QSV keep working.
Cause:
- The device plugin exposes
/dev/dri/renderD128and/dev/dri/card0, chownedroot:root. /dev/dri/by-path/pci-<addr>-renderand-cardare also present (same major:minor), but the device plugin doesn't manage them — they keep the host's own group (render/video, arbitrary GID).- Intel's OpenCL/NEO runtime opens the
by-pathrender node, notrenderD128. VAAPI/QSV work; OpenCL (Dolby Vision tone-mapping) fails, ffmpeg exit 237 (AVERROR(ENODEV)).
Fix: ATTACHED_DEVICES_PERMS=/dev/dri — same mechanism as #284 / #305. find /dev/dri -print recurses into by-path/ and covers the mismatched GID.
Evidence
Device ownership mismatch inside the container:
$ ls -la /dev/dri/ /dev/dri/by-path/
crw-rw---- 1 root root 226, 0 card0
crw-rw---- 1 root root 226, 128 renderD128
crw-rw---- 1 root video 226, 0 by-path/pci-0000:00:02.0-card
crw-rw---- 1 root 992 226, 128 by-path/pci-0000:00:02.0-render
strace on clinfo as the non-root PUID user, filtered to the relevant call:
openat(AT_FDCWD, "/dev/dri/by-path/pci-0000:00:02.0-render", O_RDWR|O_CLOEXEC) = -1 EACCES (Permission denied)
Resulting ffmpeg failure:
[AVHWDeviceContext] Failed to get number of OpenCL platforms: -1001.
Device creation failed: -19.
Failed to set value 'opencl=ocl@va' for option 'init_hw_device': No such device
ATTACHED_DEVICES_PERMS=/dev/dri picking it up correctly on container start:
**** permissions for /dev/dri/renderD128 are good ****
**** permissions for /dev/dri/card0 are good ****
**** creating group groupXXXX with id 992 ****
**** adding /dev/dri/by-path/pci-0000:00:02.0-render to group groupXXXX with id 992 ****
**** adding /dev/dri/by-path/pci-0000:00:02.0-card to group video with id 44 ****
Suggestion
Add a line to the hardware-acceleration docs: under Kubernetes/device-plugin setups, if VAAPI/QSV work but OpenCL-dependent features fail with ffmpeg exit 237, check /dev/dri/by-path/* group ownership. ATTACHED_DEVICES_PERMS=/dev/dri covers it.
- Dominant language
- Dockerfile
- Stars
- 903
- Forks
- 134
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from linuxserver/docker-jellyfin
-
Critical Bug: Core migration initiated on V12 but resulted in 0-byte database truncation on UGOS Pro Open
Difficulty 5/5 Over a week Newbie friendliness 30/100
linuxserver/docker-jellyfin#339 · 5 comments ·
All issues in linuxserver/docker-jellyfin
Similar issues
-
user-reported
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Kong/developer.konghq.com#7316 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
HarperFast/skills#96 ·
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
infinispan/infinispan#18150 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 78/100
fullcalendar/fullcalendar#8106 ·