Quantcast
Channel: JetsonHacks
Viewing all articles
Browse latest Browse all 339

NoMachine -Jetson Remote Desktop

$
0
0

NoMachine is remote desktop software that allows you to connect with any computer through a network connection. NoMachine is popular in the Jetson community. Here we connect a PC running Microsoft Windows to a Jetson Developer Kit. Looky here:

Background

In a previous article, Run GUI Apps over SSH – NVIDIA Jetson we connect an Ubuntu PC to a Jetson. This technique takes advantage of the Linux X11 forwarding feature. This feature allows graphics to be sent through a SSH (Secure Shell) protocol. SSH is ubiquitous in the Linux networking circles.

This technique works quite well when connecting to other Linux machines. Both Macintosh OS and Microsoft Windows machines have X11 forwarding extensions that allow much the same technique. However, both MacOS and Windows are missing support for the XVideo extension which is part of the X11 forwarding package. That means you cannot forward video over the network to those machines.

Now, some people are not fans of X11. For example there’s a very nice chapter in the Unix Haters Handbook titled The X-Windows Disaster. Even though the scathing references are a bit dated (it was written in 1994 after all), the criticisms are still valid. I especially appreciate the section “X: The First Fully Modular Software Disaster”.

Most modern operating systems operate their graphics differently than the X11 system. That’s mostly because graphics systems are now an integral part of the machine instead of a remote display of some sort. In fact, some newer chips have powerful graphics systems built right into them. These newer operating systems use remote desktop software to view graphics programs on a remote machine.

Remote Desktops

There are many remote desktop software stacks available. It’s a little confusing at first. Sometimes people refer to these software packages as the protocol that they use like RDP (Remote Desktop Protocol) or by the name of the entire package, like Virtual Network Computing (VNC). Other times people refer to them by product name. There are many such products in this space, including TeamViewer, Remmina and the subject of today, NoMachine.

Why NoMachine?

Any one of these alternatives may fit your needs. However, one that is popular in the Jetson community is NoMachine. There are several good reasons for this, but ease of installation and configuration, speed and feature completeness rank right up there. Plus, NoMachine runs on MacOS, Linux and Windows.

Speed is important when transferring graphics content around. As is the speed of the network connection. The interesting feature of NoMachine is that it uses a technique called “adaptive compression”.

The downside, if it how you view such things, is that NoMachine is not open source. It is free for use in most circumstances.

How Remote Desktops Work

Conceptually remote desktops are simple. The remote machine sends a compressed version of the graphics it is displaying to a local machine. When the graphics change on the remote, it sends an update. The local machine sends keyboard and mouse commands to the remote. The illusion should be that the remote desktop is running on a local machine.

In practice, of course, it’s much more complicated than that. Compression of graphics is well known from image and video sources. You’ll see compression techniques like VB9 and H.264 in use. Temporal compression is part of video compression. After all, you only want to send the parts that change, right? For example, when the mouse pointer moves you only want to send the difference of the pixels surrounding the mouse pointer.

The interesting part about NoMachine is that it constantly measures the speed of the connection from the remote to the host and adjusts the amount of compression on the fly. They call this “adaptive compression”. This give better performance in both high and low bandwidth environments.

Other Features

One of the useful features of NoMachine is remote file access. You can transfer files from the remote machine without having to use a supplemental program like scp. You can access audio and video files on the remote too.

Jetson Install

NoMachine has a nice Knowledge Base article “Tips for using NoMachine on NVIDIA Jetson Nano“. Even though the title says Jetson Nano, it will work with the other Jetsons too. The NoMachine package is for ARMv8. To download and install:

$ wget https://www.nomachine.com/free/arm/v8/deb -O nomachine.deb

$ sudo dpkg -i nomachine.deb

For the best experience, the article goes over install xfce4. I advise that you do the first installation and get a feel for if you want a faster experience before replacing your desktop environment.

Windows Install

The Windows install is similar. Going to the NoMachine Home Page allows you web browser to detect which version of NoMachine to install and present you with a download button. Press the button, and the file downloads. Then double click the downloaded file, it is an installer.

Connections

There are plenty of dialogs to help you with the initial setup. You need to make sure that the two machines are on the same network. The Jetson will advertise it’s location when you see the initial connection list from Windows. Alternatively, you can use the Jetson as the local machine and the Windows machine as the remote. It’s pretty straightforward after the software installation.

In the video, it only took 10 minutes to download and install everything. NoMachine has good instructions and thorough explanations of the many available options. The default selections make sense for most simple use cases.

Notes

  • In the video, we use a laptop Intel x86 machine running Windows 10. For the Jetsons, we use a Jetson Nano and a Jetson Orin Nano.
  • The machines are connected via a local area network.

The post NoMachine -Jetson Remote Desktop appeared first on JetsonHacks.


Viewing all articles
Browse latest Browse all 339

Trending Articles