VNC server on headless machine with Nvidia

General support questions
Post Reply
Elliott
Posts: 21
Joined: 2018/09/14 01:30:14

VNC server on headless machine with Nvidia

Post by Elliott » 2019/05/24 19:33:37

Hello. I am trying to configure a CentOS 7 instance running on EC2 as a VNC server. This instance does not have a real monitor, but I need to be able to access Nvidia settings. I have vncserver running, but it's using VMware integrated graphics. How do I make it use the Nvidia card instead?. I started with this guide, which seems to be outdated: https://wiki.centos.org/HowTos/VNC-Server

I've blacklisted nouveau and installed the Nvidia driver, so nvidia-smi shows the GPU correctly. I have written the following to /etc/systemd/system/vncserver@.service and then I start it with systemctl start vncserver@:0

Code: Select all

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking

# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l resolve -c "/usr/bin/vncserver %i -geometry 1920x1080"
PIDFile=/home/resolve/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target
Now I can connect with VNC, and glxinfo shows that OpenGL is running on VMware:

Code: Select all

$ nvidia-settings
ERROR: Unable to load info from any available system

$ glxinfo
name of display: :0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
    GLX_ARB_context_flush_control, GLX_ARB_create_context, 
    GLX_ARB_create_context_no_error, GLX_ARB_create_context_profile, 
    GLX_ARB_fbconfig_float, GLX_ARB_framebuffer_sRGB, GLX_ARB_multisample, 
    GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile, 
    GLX_EXT_fbconfig_packed_float, GLX_EXT_framebuffer_sRGB, 
    GLX_EXT_import_context, GLX_EXT_libglvnd, GLX_EXT_no_config_context, 
    GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, GLX_EXT_visual_rating, 
    GLX_MESA_copy_sub_buffer, GLX_OML_swap_method, GLX_SGIS_multisample, 
    GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group, 
    GLX_SGI_make_current_read
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
    GLX_ARB_context_flush_control, GLX_ARB_create_context, 
    GLX_ARB_create_context_profile, GLX_ARB_create_context_robustness, 
    GLX_ARB_fbconfig_float, GLX_ARB_framebuffer_sRGB, 
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_buffer_age, 
    GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile, 
    GLX_EXT_fbconfig_packed_float, GLX_EXT_framebuffer_sRGB, 
    GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, 
    GLX_EXT_visual_rating, GLX_INTEL_swap_event, GLX_MESA_copy_sub_buffer, 
    GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer, 
    GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control, 
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, 
    GLX_SGIX_visual_select_group, GLX_SGI_make_current_read, 
    GLX_SGI_swap_control, GLX_SGI_video_sync
GLX version: 1.4
GLX extensions:
    GLX_ARB_context_flush_control, GLX_ARB_create_context, 
    GLX_ARB_create_context_profile, GLX_ARB_fbconfig_float, 
    GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, GLX_ARB_multisample, 
    GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile, 
    GLX_EXT_fbconfig_packed_float, GLX_EXT_framebuffer_sRGB, 
    GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_EXT_visual_info, 
    GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer, 
    GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer, 
    GLX_OML_swap_method, GLX_SGIS_multisample, GLX_SGIX_fbconfig, 
    GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group, GLX_SGI_make_current_read
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: VMware, Inc. (0xffffffff)
    Device: llvmpipe (LLVM 6.0, 256 bits) (0xffffffff)
    Version: 18.0.5
    Accelerated: no
    Video memory: 122708MB
    Unified memory: no
    Preferred profile: compat (0x2)
    Max core profile version: 0.0
    Max compat profile version: 2.1
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 2.0
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: llvmpipe (LLVM 6.0, 256 bits)
OpenGL version string: 2.1 Mesa 18.0.5
OpenGL shading language version string: 1.30
...

User avatar
TrevorH
Forum Moderator
Posts: 25806
Joined: 2009/09/24 10:40:56
Location: Brighton, UK

Re: VNC server on headless machine with Nvidia

Post by TrevorH » 2019/05/24 20:04:48

I believe that when you invoke nvidia-settings you tell it which display to work with. You didn't so you got the one you're on.
CentOS 5 died in March 2017 - migrate NOW!
Full time Geek, part time moderator. Use the FAQ Luke

Elliott
Posts: 21
Joined: 2018/09/14 01:30:14

Re: VNC server on headless machine with Nvidia

Post by Elliott » 2019/05/24 21:02:05

You're right, but I have tried a few options for the -c argument, not sure what else to try. On a terminal over VNC, $DISPLAY = 0. On a remote ssh session with X11 forwarding, $DISPLAY = localhost:10.0. I think the issue is that OpenGL is running on VMware instead of Nvidia.

User avatar
TrevorH
Forum Moderator
Posts: 25806
Joined: 2009/09/24 10:40:56
Location: Brighton, UK

Re: VNC server on headless machine with Nvidia

Post by TrevorH » 2019/05/24 21:30:10

I suspect the issue is that there is no display that the nvidia driver is driving so there is no other desktop there to use.
CentOS 5 died in March 2017 - migrate NOW!
Full time Geek, part time moderator. Use the FAQ Luke

Elliott
Posts: 21
Joined: 2018/09/14 01:30:14

Re: VNC server on headless machine with Nvidia

Post by Elliott » 2019/05/24 21:51:58

So maybe I can find a way to make the VNC server act as a "monitor" driven by the Nvidia card?

User avatar
TrevorH
Forum Moderator
Posts: 25806
Joined: 2009/09/24 10:40:56
Location: Brighton, UK

Re: VNC server on headless machine with Nvidia

Post by TrevorH » 2019/05/24 22:35:43

CentOS 5 died in March 2017 - migrate NOW!
Full time Geek, part time moderator. Use the FAQ Luke

Post Reply