Forum / NoMachine for Linux / Black screen on connection to headless CentOS 7 NoMachine
- This topic has 4 replies, 3 voices, and was last updated 5 years, 9 months ago by graywolf.
-
AuthorPosts
-
February 15, 2019 at 17:20 #21450danslakParticipant
I’m trying to connect to the physical desktop on a headless CentOS 7 machine, running NoMachine server 6.4.6. Client is on Ubuntu linux, running NoMachine 6.4.6 as well. We had a problem with X not running on the server (its headless), so the user was having NoMachine create its own virtual display server, as some posts here have recommended. That worked, but interacting with that desktop was incredibly slow, unusably so. In our other experience with NoMachine, using the physical desktop works extremely well – is fast and responsive.
The x server issue was due to a version difference between glx and xorg.server, which we found tips to elsewhere online. Once we sorted that out, NoMachine client was again connecting to the physical desktop, as we wanted. But when the screen comes up, the display is entirely black. Going to display settings in NoMachine client shows no resolution options! Selecting a custom resolution, or “match client resolution upon connecting” did not help.
We use the vendor NVIDIA driver, version 410.93, for a Quadro P4000 card. I did see this post: https://www.nomachine.com/AR09L00814 about using proprietary drivers, but the mesa drivers are already in /usr/lib64, eg ligGL.so.1. I added the path anyways to node.cfg, but no help.
I dont see any obvious error messages in the system or NoMachine logs. (there are various warnings but I think these are about audio issues, which is fine, we don’t need audio!).
I have thought maybe the issue is with xorg.conf, but haven’t been able to change anything there to fix the issue. Currently the core parts are pasted at the end, in case anything obvious is wrong there.
Any ideas?
xorg.conf:
Section “Monitor”
Identifier “Monitor0”
VendorName “Unknown”
ModelName “Unknown”
#HorizSync 28.0 – 33.0
#VertRefresh 43.0 – 72.0
#Option “DPMS”
EndSectionSection “Device”
Identifier “Device0”
Driver “nvidia”
VendorName “NVIDIA Corporation”
BoardName “Quadro P4000”
BusID “PCI:59:0:0”
Option “AllowEmptyInitialConfiguration”
EndSectionSection “Screen”
Identifier “Screen0”
Device “Device0”
Monitor “Monitor0”
DefaultDepth 24
Option “AllowEmptyInitialConfiguration” “True”
SubSection “Display”
Depth 24
Modes “1920×1200”
Virtual 1920 1200
EndSubSection
EndSectionFebruary 18, 2019 at 13:04 #21484fra81ModeratorHi,
the fact the X server starts up doesn’t mean necessarily that rendering actually happens when no montitor is connected to the GPU. You could try one of those dongles that simulate a monitor. Try to search for “headless hdmi dongle”.
Or you could give one more try with the NoMachine’s virtual display server. In this regard, the following article should be more appropriate to address your issue:
February 19, 2019 at 17:29 #21506danslakParticipantThanks very much for the info and the link. I followed the instructions in the article, and got the first method working (“turn LLVMpipe ON”), and the desktop is responsive. To get this to work, I did have to ensure the display manager (gdm) was shut down, otherwise NoMachine would provide only the option to connect to physical desktop, which was again just blank.
I did try the second method also, but no luck, still just blank screen on connecting to the physical desktop. One step of the process did suggest a possible problem (see IMPORTANT NOTE at the end):
/etc/NX/nxserver –virtualgl-install
NX> 900 … Modifying /etc/security/console.perms to disable automatic permissions
NX> 900 for DRI devices …
NX> 900 … Creating /etc/modprobe.d/virtualgl.conf to set requested permissions for
NX> 900 /dev/nvidia* …
NX> 900 … Attempting to remove nvidia module from memory so device permissions
NX> 900 will be reloaded …
NX> 900 … Granting write permission to /dev/nvidia-modeset /dev/nvidia0 /dev/nvidiactl for all users …
NX> 900 … Granting write permission to /dev/dri/card0 for all users …
NX> 900 … Modifying /etc/X11/xorg.conf.d/99-virtualgl-dri to enable DRI permissions
NX> 900 for all users …
NX> 900 … /etc/X11/xorg.conf has been saved as /etc/X11/xorg.conf.orig.vgl …
NX> 900 … Modifying /etc/X11/xorg.conf to enable DRI permissions
NX> 900 for all users …
NX> 900 … /etc/gdm/Init/Default has been saved as /etc/gdm/Init/Default.orig.vgl …
NX> 900 … Adding xhost +LOCAL: to /etc/gdm/Init/Default script …
NX> 900 … Enabling XTEST extension in /etc/gdm/custom.conf …
NX> 900 … Setting default run level to 5 (enabling graphical login prompt) …
NX> 900 … Commenting out DisallowTCP line (if it exists) in /etc/gdm/custom.conf …
NX> 900 Done. You must restart the display manager for the changes to take effect.
NX> 900 IMPORTANT NOTE: Your system uses modprobe.d to set device permissions. You
NX> 900 must execute rmmod nvidia with the display manager stopped in order for the
NX> 900 new device permission settings to become effective.I attempted to execute the “rmmod nvidia”, but this fails:
# rmmod nvidia
rmmod: ERROR: Module nvidia is in use by: nvidia_modesetThis is after shutting down gdm. I get the same error if do rmmod -f. So perhaps this is preventing this method from working properly…
First method might be ok for now, as long as applications such as MATLAB can still access the GPU (for computation, not rendering)…I’ll have the user check.
Otherwise, sounds like getting a dongle is maybe the easiest solution?
February 27, 2019 at 10:28 #21601fra81ModeratorYes, getting the dongle should be the easiest solution to have GPU acceleration, but probably you are good to go with the llvmpipe solution, so I’d suggest to wait for your user 😉
February 27, 2019 at 10:39 #21602graywolfParticipant# rmmod nvidia
rmmod: ERROR: Module nvidia is in use by: nvidia_modesetnvidia module depends on other modules they you need to remove before (order matters):
rmmod nvidia_drm nvidia_uvm nvidia_modeset nvidia
If it doesn’t help, use
nvidia-smi
to check processes using the GPU. -
AuthorPosts
This topic was marked as solved, you can't post.