Hello,
I've been attempting to integrate Turbo VNC and VirtualGL on our headless
GPU enabled compute nodes but ended up running into vgl errors. (centos7)
Here's what I've done up until this point.
Nvidia driver installed for P100 GPU's (4 on the host)
Updated xorg.conf with the nvidia driver info.
TurboVNC installed along with websockify (this is a open ondemand
installation which uses novnc to proxy through the headnode)
killed nvidia-persistenced
rmmod nvidia_drm
rmmod nvidia_modeset
rmmod nvidia
vglserver_config. Installed Virtualgl and ran configuration with no
security restrictions (i.e. no on everything)
... Modifying /etc/security/console.perms to disable automatic permissions
for DRI devices ...
... Creating /etc/modprobe.d/virtualgl.conf to set requested permissions for
/dev/nvidia* ...
... Granting write permission to /dev/nvidia0 /dev/nvidia1 /dev/nvidia2 /dev
/nvidia3 /dev/nvidiactl /dev/nvidia-modeset for all users ...
... Modifying /etc/X11/xorg.conf.d/99-virtualgl-dri to enable DRI
permissions
for all users ...
... Modifying /etc/X11/xorg.conf to enable DRI permissions
for all users ...
... Adding xhost +LOCAL: to /etc/gdm/Init/Default script ...
... /etc/lightdm/lightdm.conf has been saved as /etc/lightdm/lightdm.conf.
orig.vgl ...
... Adding greeter-setup-script=xhost +LOCAL: to /etc/lightdm/lightdm.conf
...
... Enabling XTEST extension in /etc/gdm/custom.conf ...
... Setting default run level to 5 (enabling graphical login prompt) ...
... Commenting out DisallowTCP line (if it exists) in /etc/gdm/custom.conf
...
Done. You must restart the display manager for the changes to take effect.
I killed any running TurboVNC session, logged in again to obtain a
TurboVNC/XFCE desktop and attempt to run vglrun glxgears
[user@hpc-xx-xx ~]$ vglrun glxgears
[VGL] ERROR: Could not open display :0.
[user@hpc-xx-xx ~]$ echo $DISPLAY
:1.0
so i mucked around and set vgl display to 1 which I'm pretty sure is not
what i wanted for split rendering.
[user@hpc-xx-xx ~]$ VGL_DISPLAY=:1.0 vglrun +v glxgears
[VGL] Shared memory segment ID for vglconfig: 1212424
[VGL] VirtualGL v2.6.1 64-bit (Build 20190101)
[VGL] Opening connection to 3D X server :1.0
[VGL] WARNING: The OpenGL rendering context obtained on X display
[VGL] :1.0 is indirect, which may cause performance to suffer.
[VGL] If :1.0 is a local X display, then the framebuffer device
[VGL] permissions may be set incorrectly.
[VGL] Using Pbuffers for rendering
[VGL] ERROR: in readPixels--
[VGL] 394: GL_ARB_pixel_buffer_object extension not available
X Error of failed request: GLXBadCurrentWindow
Major opcode of failed request: 151 (GLX)
Minor opcode of failed request: 5 (X_GLXMakeCurrent)
Serial number of failed request: 48
Current serial number in output stream: 48
[root@hpc-xx-xx X11]# lsmod | grep nvidia
nvidia_drm 39819 0
nvidia_modeset 1036499 1 nvidia_drm
nvidia 16598662 1 nvidia_modeset
drm_kms_helper 179394 2 mgag200,nvidia_drm
drm 429744 5 ttm,drm_kms_helper,mgag200,nvidia_drm
ipmi_msghandler 56032 3 ipmi_devintf,nvidia,ipmi_si
Output from TurboVNC process.
user 38433 2.2 0.0 423608 71420 ? Rl 09:43 0:02 /opt/TurboVNC/
bin/*Xvnc :1* -desktop TurboVNC: hpc-xx-xx:1 (user) -auth /home/user/.
Xauthority -geometry 800x600 -depth 24 -rfbwait 120000 -rfbauth vnc.passwd
-x509cert
/home/user/.vnc/x509_cert.pem -x509key /home/user/.vnc/x509_private.pem
-rfbport
5901 -fp catalogue:/etc/X11/fontpath.d -deferupdate 1 -dridir /usr/lib64/dri
-registrydir /usr/lib64/xorg
Rebooted after running systemctl set-default graphical.target (not sure if
required)
xorg.conf
https://gist.githubusercontent.com/johnbot1/bc988b94c9c1e05ac315faa9e52aaa4a/raw/90042ff78e392fb38eb67ba717f4d2a0a1dc67ad/xorg.conf
I've also attempted to run additional configuration following the Headless
nvidia mini how-to
https://virtualgl.org/Documentation/HeadlessNV
nvidia-xconfig --query-gpu-info
nvidia-xconfig -a --allow-empty-initial-configuration --virtual=1920x1200
--busid PCI:4:0:0
I assume VGL display 0 needs to be available however the sanity checks are
failing.
I've run the sanity checks with no output.
xdpyinfo -display :0
/opt/VirtualGL/bin/glxinfo -display :0 -c
So, I'm attempting to understand if having X11 running in background is
required or if launching a xfce desktop session via TurboVNC and then
running vglrun is sufficient to access the GPU hardware on these headless
systems. Appreciate if someone would point me in the right direction.
--
You received this message because you are subscribed to the Google Groups
"VirtualGL User Discussion/Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/virtualgl-users/1964d425-55a5-444e-bd1b-258b75cfce0a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.