Jetson Remote Desktop Headless Setup Tutorial

Jetson Remote Desktop Headless Setup Tutorial

In this tutorial, NoMachine will be used to connect to the NVIDIA Jetson board as a remote desktop with no monitor attached to the NVIDIA Jetson system.

Step 1. Install NoMachine on the host PC

Go to NoMachine official website, download and install the appropriate version for the host PC. In this case, a Ubuntu 20.04 X86 computer, which requires downloading the NoMachine_8.13.1_1_amd64.deb version.

In order to install the downloaded file, it is simply required to run the following command:

sudo rpm -i NoMachine_8.13.1_1_x86_64.rpm

Step 2. Install NoMachine on Jetson

Download the NoMachine DEB package for ARMv8 from the NoMachine Website. It should be found on the NoMachine Embedded Editions section of the download page.

If the NoMachine debian package was downloaded into the host machine, it can be copied into the Jetson board with the following command:

scp nomachine_8.13.1_1_arm64.deb @:~

Let’s assume the username is nvidia and the board is connected through the OTG USB connector to the board. The command then would be:

scp nomachine_8.13.1_1_arm64.deb nvidia@192.168.55.1:~

Then the NoMachine can be installed in the NVIDIA Jetson by running:

sudo dpkg -i nomachine_8.13.1_1_arm64.deb

Step 3. Setup virtual display resolution configuration

This steps avoids NoMachine and other headless remote desktop applications from resetting the resolution when using the Jetson on headless mode.

Open /etc/X11/xorg.conf with a text editor. For instance, with nano:

sudo nano /etc/X11/xorg.conf

Then add the following at the end of the file and save:

Section "Screen"
Identifier "Screen0"
Monitor    "Monitor0"
SubSection "Display"
Viewport   0 0
Modes "1280x1024"
Depth   24
Virtual 1280 1024
EndSubSection
EndSection

Step 4. Setup the Jetson to use a X virtual framebuffer

This step is necessary to avoid NoMachine detecting X server running, which leads to it not using its own virtual display, producing a black screen on Jetson when using the remote desktop in headless mode.

Start by disabling xserver

sudo systemctl disable gdm3 --now

Next, restart the NoMachine server so no machine can use its virtual display.

sudo /etc/NX/nxserver --restart

Step 5. Start NoMachine on the host PC

At this point, if everything went as expected, the NVIDIA Jetson board should appear on the NoMachine interface.

NVIDIA Jetson Nano Remote Desktop With NoMachine Using Headless Setup

Let us know if this tutorial was helpful, and don’t hesitate to reach out if more assistance is required, we would love to help.