NoMachine Support

Your questions answered

Knowledge Base

Searching in: Articles & FAQs
Filter the search results
Applies to:
Last update:
Searching in: Articles & FAQs
ID: AR09L00814
Applies to: NoMachine Server
Added on: 2014-09-25
Last update: 2015-09-24
A black screen is displayed when running virtual desktops on Unity 3D or GNOME 3 and proprietary drivers

Starting from version 4.3, NoMachine supports Unity 3D and GNOME 3 virtual desktops:

https://www.nomachine.com/FR06I02466

However when proprietary drivers for AMD and NVIDIA video cards are installed on the server host, users get a black screen when running virtual desktops. This doesn't occur when using Open Source drivers like Radeon or nouveau. 

The issue with proprietary drivers (e.g. fglrx or nvidia) is due to the fact that the llvmpipe software rasterizer (http://www.mesa3d.org/llvmpipe.html) cannot be found on the system unless LD_LIBRARY_PATH is set to point to the location of the proper libGL.so library.

This happens when the Mesa library is not installed in the default path for system libraries, e.g. /usr/lib.

For example, on Ubuntu 14.04 64 bit,  LD_LIBRARY_PATH has to point at:  /usr/lib/x86_64-linux-gnu/mesa.

 

Card vendor Open Source Driver                                  Proprietary Driver                         
AMD                        

Radeon

http://www.x.org/wiki/radeon/

AMD Catalyst, alias fglrx
NVIDIA

nouveau

http://nouveau.freedesktop.org/wiki/

nvidia

 

How to get rid of the black screen issue with NoMachine

In order to set LD_LIBRARY_PATH for NoMachine sessions,  specify path to the Mesa 3D graphics library in the node configuration, the /usr/NX/etc/node.cfg file.

This must be done on the machine where the NoMachine server is installed and on each of the remote nodes if a multi-node environment is set-up.

To do that:

1) Edit the /usr/NX/etc/node.cfg file.

2) Uncomment the DesktopCommandLibraryPath key.

3) Set the proper path to Mesa library in the DesktopCommandLibraryPath key.

For example on Ubuntu 14.04 64 bit:

DesktopCommandLibraryPath = "/usr/lib/x86_64-linux-gnu/mesa"

and on Ubuntu 14.04 32 bit:

DesktopCommandLibraryPath = "/usr/lib/i386-linux-gnu/mesa/"


Paths above are the same for  Ubuntu versions from 12.10 to 14.04.

NOTE

Path to be set in the DesktopCommandLibraryPath key must point to the directory containing the libGL.so* libraries.

It should not be necessary to set it if the libraries are in the default path for libraries (e.g. /usr/lib).

 


To check where the Mesa library is placed on the system, you can use the 'dpkg -L' command for DEB-based package managers, for example:

$ sudo dpkg -L libgl1-mesa-glx | grep libGL.so.1

or 'rpm -ql'  for RPM-based package managers, for example:

# rpm -ql mesa-libGL | grep libGL.so.1

 

Modify commands above to fit the name of the Mesa library package installed on the system.