You are not logged in.
Hi everyone,
I just recently discovered systemd containers, and I'm trying to get direct rendering with the proprietary nvidia drivers to work. I've used xhost to have the container direct X output to the host's X11 server.
Unfortunately, there seem to be some problems.
[root@container ~]# glxinfo | grep render
direct rendering: No (If you want to find out why, try setting LIBGL_DEBUG=verbose)
OpenGL renderer string: GeForce GTX 560 Ti/PCIe/SSE2
GL_NV_conditional_render, GL_NV_copy_depth_to_color, GL_NV_copy_image,
GL_OES_fbo_render_mipmap, GL_OES_packed_depth_stencil, GL_OES_rgb8_rgba8,
LIBGL_DEBUG=verbose does not seem to reveal anything else. Here is the output of some commands I have run to try and diagnose the issue. glxinfo and glxinfo32 are both correctly using their respective 64/32bit libGL files, and both the host and container have the same versions of the nvidia packages installed.
[root@container ~]# ldd /usr/bin/glxinfo
linux-vdso.so.1 (0x00007fff38554000)
libGL.so.1 => /usr/lib/libGL.so.1 (0x00007f7dec21c000)
libX11.so.6 => /usr/lib/libX11.so.6 (0x00007f7debeda000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f7debb37000)
libnvidia-tls.so.343.22 => /usr/lib/libnvidia-tls.so.343.22 (0x00007f7deb934000)
libnvidia-glcore.so.343.22 => /usr/lib/libnvidia-glcore.so.343.22 (0x00007f7de8ccc000)
libXext.so.6 => /usr/lib/libXext.so.6 (0x00007f7de8aba000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f7de88b6000)
libxcb.so.1 => /usr/lib/libxcb.so.1 (0x00007f7de8694000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7dec56a000)
libm.so.6 => /usr/lib/libm.so.6 (0x00007f7de838f000)
libXau.so.6 => /usr/lib/libXau.so.6 (0x00007f7de818b000)
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00007f7de7f85000)
[root@container ~]# ldd /usr/bin/glxinfo32
linux-gate.so.1 (0xf76e3000)
libGL.so.1 => /usr/lib32/libGL.so.1 (0xf75b2000)
libX11.so.6 => /usr/lib32/libX11.so.6 (0xf747b000)
libc.so.6 => /usr/lib32/libc.so.6 (0xf72c3000)
libnvidia-tls.so.343.22 => /usr/lib32/libnvidia-tls.so.343.22 (0xf72be000)
libnvidia-glcore.so.343.22 => /usr/lib32/libnvidia-glcore.so.343.22 (0xf4cb3000)
libXext.so.6 => /usr/lib32/libXext.so.6 (0xf4c9e000)
libdl.so.2 => /usr/lib32/libdl.so.2 (0xf4c99000)
libxcb.so.1 => /usr/lib32/libxcb.so.1 (0xf4c73000)
/lib/ld-linux.so.2 (0xf76e6000)
libm.so.6 => /usr/lib32/libm.so.6 (0xf4c26000)
libXau.so.6 => /usr/lib32/libXau.so.6 (0xf4c21000)
libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf4c1a000)
[root@container ~]# pacman -Qs nvidia
local/lib32-nvidia-libgl 343.22-1
NVIDIA drivers libraries symlinks (32-bit)
local/lib32-nvidia-utils 343.22-1
NVIDIA drivers utilities (32-bit)
local/libcl 1.1-4
OpenCL library and ICD loader from NVIDIA
local/libvdpau 0.8-1
Nvidia VDPAU library
local/nvidia 343.22-2
NVIDIA drivers for linux
local/nvidia-libgl 343.22-1
NVIDIA drivers libraries symlinks
local/nvidia-utils 343.22-1
NVIDIA drivers utilities
[root@host ~]# pacman -Qs nvidia
local/lib32-libvdpau 0.8-1
Nvidia VDPAU library
local/lib32-nvidia-libgl 343.22-1
NVIDIA drivers libraries symlinks (32-bit)
local/lib32-nvidia-utils 343.22-1
NVIDIA drivers utilities (32-bit)
local/libcl 1.1-4
OpenCL library and ICD loader from NVIDIA
local/libvdpau 0.8-1
Nvidia VDPAU library
local/nvidia 343.22-2
NVIDIA drivers for linux
local/nvidia-libgl 343.22-1
NVIDIA drivers libraries symlinks
local/nvidia-utils 343.22-1
NVIDIA drivers utilities
The most promising results came from running strace on glxinfo, which revealed several instances of the program being unable to open /dev/nvidiactl.
[root@container ~]# strace glxinfo
...
stat("/dev/nvidiactl", 0x7ffff977e7a0) = -1 ENOENT (No such file or directory)
mknod("/dev/nvidiactl", S_IFCHR|0666, makedev(195, 255)) = -1 EPERM (Operation not permitted)
geteuid() = 0
open("/dev/nvidiactl", O_RDWR) = -1 ENOENT (No such file or directory)
...
Unfortunately, I can't seem to bind /dev/nvidiactl or any other nvidia related /dev nodes. The container just won't boot if I try. Has anyone had any success with direct rendering in a systemd container?
Thank you.
Offline