Immich says no /dev/dri devices found while test node script can find them
Video conversion seems to fail with hardware acceleration. You can see the output I'm getting here: https://gist.github.com/sdebruyn/b7705a6bd13ac1dd19bd52dd934ca090
Note the line
No /dev/dri devices found. If using Docker, make sure at least one /dev/dri device is mounted
My Compose file has the following:
Outside the container I can find the DRI devices:
Video is GID 44, render is GID 107
Inside the container I can also find the DRI devices:
I created this test script to see if there is an issue with Node fetching them:
It tells me it can find them: Files in /dev/dri: [ 'card0', 'renderD128' ]
From looking at the Immich source, that is also how Immich gets the devices.
I'm clueless at this point. Anyone has an idea why it's telling me there are no DRI devices?43 Replies
:wave: Hey @Sam_D,
Thanks for reaching out to us. Please carefully read this message and follow the recommended actions. This will help us be more effective in our support effort and leave more time for building Immich :immich:.
References
- Container Logs:
docker compose logs
docs
- Container Status: docker ps -a
docs
- Reverse Proxy: https://immich.app/docs/administration/reverse-proxy
- Code Formatting__ https://support.discord.com/hc/en-us/articles/210298617-Markdown-Text-101-Chat-Formatting-Bold-Italic-Underline#h_01GY0DAKGXDEHE263BCAYEGFJA
Checklist
I have...
1. :ballot_box_with_check: verified I'm on the latest release(note that mobile app releases may take some time).
2. :ballot_box_with_check: read applicable release notes.
3. :ballot_box_with_check: reviewed the FAQs for known issues.
4. :ballot_box_with_check: reviewed Github for known issues.
5. :ballot_box_with_check: tried accessing Immich via local ip (without a custom reverse proxy).
6. :ballot_box_with_check: uploaded the relevant information (see below).
7. :ballot_box_with_check: tried an incognito window, disabled extensions, cleared mobile app cache, logged out and back in, different browsers, etc. as applicable
(an item can be marked as "complete" by reacting with the appropriate number)
Information
In order to be able to effectively help you, we need you to provide clear information to show what the problem is. The exact details needed vary per case, but here is a list of things to consider:
- Your docker-compose.yml and .env files.
- Logs from all the containers and their status (see above).
- All the troubleshooting steps you've tried so far.
- Any recent changes you've made to Immich or your system.
- Details about your system (both software/OS and hardware).
- Details about your storage (filesystems, type of disks, output of commands like fdisk -l
and df -h
).
- The version of the Immich server, mobile app, and other relevant pieces.
- Any other information that you think might be relevant.
Please paste files and logs with proper code formatting, and especially avoid blurry screenshots.
Without the right information we can't work out what the problem is. Help us help you ;)
If this ticket can be closed you can use the /close
command, and re-open it later if needed.
Successfully submitted, a tag has been added to inform contributors. :white_check_mark:
Is what you want
You need to bind it to something
Thanks. I think I was messing with the compose file to troubleshoot but initially I had the provided hwaccel file. I just changed it to your suggestion, retried, but I get the same error.
I'm assuming 44 and 107 are render and video?
Could you elaborate on your docker host @Sam___D ? Is it a VM, baremetal, which OS etc
Correct, reverse order though.
Running on TrueNAS Scale 24.10.0.2. CPU with iGPU is Intel 14700.
No virtualization
I've had to also use these rules but I'm really pulling this out of thin air...:
There's no /dev/kfd on the host
What does the other one do?
gives access to the devices with that number
Medium
Major and Minor numbers in Linux kernel
In the Linux kernel, “major” and “minor” are two distinct concepts that refer to the way the kernel organizes and manages devices.
I just noticed it's supposed to be 226 🫠
(for me)
Thx, since I also saw this in my ls output, giving it a try
Do you know an easy way to test encoding/decoding of a single video with Immich?
kfd is needed for specific AMD iGPUs just fyi
Now I just queue all videos again but it's hard to capture the logs
Go to any video in the web interface
bottom option

in the three dots menu
thx
Unfortunately still
I'm not understanding why the simple Node JS script can list them without issues while Immich's code seems to use that same call and comes back with nothing
You and me both buddy
Juuuust to be clear you're doing compose up after every edit right?
yes definitely
I'm using Dockge and redeploy using that when I make a change
Alright what if, instead of the directory, we pass the devices themselves
so:
It shouldn't make a difference but at this point...
Can even add the dri directory just to make it all silly
FYI I verified that docker inspect shows the changes we've made with the cgroup rules (I added both, also tried with just the 226):
still the same issue after adding the devices one by one
:Sadge:
If you enter the container with
docker exec -it immich_server /bin/bash
can you produce meaningful output with /usr/lib/jellyfin-ffmpeg/vainfo --display drm --device /dev/dri/renderD128
?
Do you need the full output?
no that's fine
/usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 -init_hw_device opencl@va
Works?yep

it detected UHD 770 so it must be communicating with the DRI somehow
Well now I'm all out of ideas 😦 mabye @sogan knows something I don't
I was thinking about this part in the logs:
Can one of the settings cause this?





I don't think so, HWA: Quicksync seems OK to me, UHD770 has AV1/VP9
Oh....
After changing from AV1 to VP9
changing it back to AV1 and the errors come back
right so it IS AV1 🤔
But UHD770 has that so I'm not sure where the issue is then
indeed, that's why I picked that setting and also didn't bother getting an older gen CPU
maybe the ffmpeg used isn't compiled in the right way to use av1 with qvs?
it's jellyfin-ffmpeg
I am 100% sure they are full in on AV1 😛
What kernel version does your truenas have @Sam___D ?
6.6.44-production+truenas #1 SMP PREEMPT_DYNAMIC Fri Nov 8 18:37:36 UTC 2024 x86_64 GNU/Linux
av1 is indeed there with quicksync/vaapi:
I don't know what it means but it's missing the final
D
for QSV
I don't think that's an issue
I think I'm going for VP9 for now then so that I get hw decoding/encoding. The error message that Immich gives seems to be incorrect.
Thanks for your time @Mraedis !!! I wish I could repay the favour!
No need, have a nice day 🙂
https://github.com/immich-app/immich/pull/14611 this seems relevant for you @Sam___D
I saw 😄 thanks!
FWIW the AV1 is also failing in Jellyfin (I just configured it)
hmm it's also not in the list, don't know where I got this from
Intel
Media Capabilities Supported by Intel Hardware
Learn about media capabilities of various generations of Intel hardware.
I looked it up myself and it was checked for UHD770
Ohhh it 's decode only
Missed that
Yeah the desktop chips don't get AV1 encode