Why Blender Cycles is not able to detect my GPU(s) and CUDA within the Ubuntu / Linuxulator

Hello to everyone.

I’ve just installed Ubuntu 22.10 with the Linuxulator on FreeBSD 13.1-RELEASE p6 as well as these components inside it :

  1. nvidia driver Version: 525.78.01 + CUDA 12
  2. Blender 3.2.2

The nvidia driver 525.78.1 + CUDA 12 work correctly within the linuxulator :

and Cycles is already able to detect the nvidia driver + CUDA,but only if blender runs on FreeBSD. Give a look at this picture :

What I want to do is to run Blender and I want to render my projects with cycles using the CUDA libraries and my GPU(s) within the linux emulation layer. Is this supposed to work ? The error that Blender gives when I try to do that are the the following ones :

root@marietto:/# blender

Read prefs: /root/.config/blender/3.2/config/userpref.blend
libGL error: glx: failed to create dri2 screen
libGL error: failed to load driver: nouveau
could not get a list of mounted file-systems
/var/run/user/1001/gvfs/ non-existent directory
Saved session recovery to '/tmp/quit.blend'
Blender quit

why do I use root ? because as a normal user Blender does not start at all.

marietto@marietto:~$ blender
Unable to open a display

I’m very curious to understand the reason(s) of the errors I see below :

libGL error: glx: failed to create dri2 screen
libGL error: failed to load driver: nouveau

My sensation is that they can be fixed. If I do :

cp -r  ./blender-3.2.2-linux-x64/3.2/scripts/addons/cycles/lib /compat/ubuntu2210/usr/share/blender/scripts/addons/cycles/

I see this additional error :

CUDA cuInit: Unknown error

but if I remove the lib directory :

rm -r /compat/ubuntu2210/usr/share/blender/scripts/addons/cycles/lib

the error “CUDA cuInit: Unknown error” disappears,but the other errors are still there.

It seems to me that Blender looks for the nouveau driver and it can’t find it. But it should look like the nVidia driver. Since the nouveau driver does not support CUDA,maybe it should be “unlinked” from Blender and Blender should be “linked” to the nvidia driver,in some way. What do you think ?

I can’t give you full help with this, but I will share some information based on what I can gather from this post and resources online.

  • Linuxulator appears to be some kind of compatibility layer. It’s not guaranteed to work with all applications, and CUDA is likely to be one of the application types it will have issues with. Maybe try verifying that applications that use the GPU work, then CUDA applications, then look into getting Cycles rendering working with CUDA. This may not be a Blender issue, but a Linuxulator issue.

  • Depending on how you installed your GPU drivers on “Linux”, you might not have all the packages required to run CUDA applications. For example on some Linux distributions I had to install packages like libcuda1 and libnvoptix1 to use CUDA and OptiX on Linux.

  • As you pointed out, the error libGL error: failed to load driver: nouveau suggests Blender is trying to load the nouveau driver. Typically when installing the Nvidia proprietary driver, the loading of the nouveau drivers gets disabled. Maybe the Nvidia GPU drivers weren’t installed properly? Or you need to disable nouveau manually? Or this is just some issue with Linuxulator?

  • You also have errors related to “opening a display” (opening the Blender GUI). This could be related to the GPU driver issue discussed before, or maybe you need to do a bit of extra setup to get GUI applications working in Linuxulator. Such as setup a desktop environment within your Linuxulator?
    It also might be easier to test Blender with CUDA rendering if you started with command line rendering rather than GUI render. Command Line Rendering — Blender Manual

Sorry if I’m unable to help much with this.

1 Like