NoMachine is not the GUI you think it is. What the other person sees at the actual Jetson is normally via the X server. You are not running ssh
forwarding, but this might partially explain that NoMachine is its own graphical server separate from what the Jetson shows up as having:
- https://forums.developer.nvidia.com/t/video-output-does-not-show-up-because-opengl-failed-to-create-x11-window-imagenet-camera-failed-to-create-opengl-display/68681/7
- https://forums.developer.nvidia.com/t/videocapture-fails-to-open-onboard-camera-l4t-24-2-1-opencv-3-1/47247/18
The gist of this:
- An X server normally interprets graphical events locally, and displays via the local GPU to the local monitor. When you remote connect via
ssh
with either the “-Y
” or “-X
” argument, the remote system will instead see the events, and the GPU and software of the remote system will be what interprets those events and creates what you see on the display. - A virtual server replaces the X server, but is still X in most cases. NoMachine is a virtual server. You can run both a local server and virtual server simultaneously with independent logins.
- A virtual server runs directly on the Jetson, but remote connection does not use events. The events are interpreted directly on the Jetson’s GPU and software for this case even if the viewer is on a remote system. Virtual servers forward the result of events, i.e., the actual pixel changes, as seen by the Jetson.
- Unless you’ve set the virtual server on the Jetson to replace the local X server, the server settings will not show up at the Jetson itself.
- If someone logs in locally at the Jetson, and reports the result of “
echo $DISPLAY
”, then it will tell you the designation of the server which is visible to that Jetson user. - If someone logs in remotely via NoMachine, and runs the command “
echo $DISPLAY
”, then if and only if it matches the local$DISPLAY
will the two be the same (and perhaps not anyway in some cases). - Local systems usually have
$DISPLAY
as “:0.0
”. Remote systems via a virtual server will usually (it is traditional, and is not enforeced) be something like “:10.0
”. - You can change the resolution and other setup all you want in NoMachine, or in the non-virtual local X server, and the two will not know, nor care, what the other server is set to. If you are setting up the
xorg.conf
to run a certain resolution, and it is being applied to the local X server, then I would expect the virtual server to not see (nor use) that setting.
X server logs (including virtual) are located as naming convention:
/var/log/Xorg.*.log
What do you see from:
ls -ltr /var/log/Xorg.*.log
Note that the “-ltr
” means it will reverse sort based on timestamp of last modification of the file. Are there files with two different names? Those names in the wildcard “*
” are the $DISPLAY
.