User Tools

Site Tools


workshops:nvidia_jetson:jetson:remote_desktop

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
workshops:nvidia_jetson:jetson:remote_desktop [2021/02/11 12:17] – ↷ Page moved from workshops:nvidia:jetson:remote_desktop to workshops:nvidia_jetson:jetson:remote_desktop rolfworkshops:nvidia_jetson:jetson:remote_desktop [2021/02/25 02:52] (current) harley01
Line 2: Line 2:
 ====== Remote Desktop: Better HEADLESS! ====== ====== Remote Desktop: Better HEADLESS! ======
  
-VNC and NoMachine require that a monitor is connected! -> Better headless with rdp and xfce4!+Here they show and compare some remote connection alternatives for Jetson boards.
  
 +===== VNC =====
  
-==== VNC Setup - UPDATE: Very Slow! ====+VNC stands for Virtual Network Computing, it is a graphical desktop sharing system that uses the Remote Frame Buffer (RFB) protocol which allows you to control a remote computer through a network connection, capturing keyboard and mouse events and updating the graphical window on both computers by retransmitting the changes through a network.
  
-  * [[https://developer.nvidia.com/embedded/learn/tutorials/vnc-setup|VNC Setup]] from the NVIDIA developers' forum+The graphical user interface (GUI) is server-side rendered, that means that everything we see on our remote connection is also on our server. You can also connect several clients to the same server but all of them will see the same graphical environment.
  
-Problem: It seems a monitor has to be connected to the Jetson. +Currently (02/22/2021) the official support for remote connection on Jetson boards is VNC, although it is not the smoothest working option.
  
 +A tutorial for setting up a remote connection can be found at **[[workshops:nvidia_jetson:xavier_nx:vnc_configuration|VNC Configuration]]**.
  
-<code bash> +More details about VNC at [[https://en.wikipedia.org/wiki/Virtual_Network_Computing|Virtual Network Computing]]
-# If you have a Jetson Nano 2GB Developer Kit (running LXDE) +
-# mkdir -p ~/.config/autostart +
-# cp /usr/share/applications/vino-server.desktop ~/.config/autostart/.+
  
-# For all other Jetson developer kits (running GNOME) +<del>Problem: It seems a monitor has to be connected to the Jetson.</del>
-cd /usr/lib/systemd/user/graphical-session.target.wants +
-sudo ln -s ../vino-server.service ./.+
  
-# Configure the VNC server +===== NX =======
-gsettings set org.gnome.Vino prompt-enabled false +
-gsettings set org.gnome.Vino require-encryption false+
  
-# Set password to access the VNC server +**NX technology**, commonly known as Nomachine, is proprietary software for remote access, desktop sharing, virtual desktop and file transfer between computers. The design of NX was derived from the DXPC (Differential X Protocol Compressor) project, like VNC it has a client-server architecture for remote connection and also renders the graphical environment on the server sideNX renders the GUI faster than VNC because it only renders the areas that underwent changes while VNC renders the whole environment including those parts that did not under changes, this makes NX have a smoother performance compared to VNC.
-# Replace thepassword with your desired password +
-gsettings set org.gnome.Vino authentication-methods "['vnc']" +
-gsettings set org.gnome.Vino vnc-password $(echo -n 'thepassword'|base64)+
  
-# Reboot the system so that the settings take effect +Although Nomachine does not have [[https://forums.developer.nvidia.com/t/has-anyone-had-success-installing-nomachine-on-their-nano/75535/2 | official support]], the official Nomachine website has an article called [[https://www.nomachine.com/AR02R01074 | Tips for using NoMachine on NVIDIA Jetson Nano]] in which they state that Nomachine can be installed on a Jetson Nano, this article was tested on a Jetson Xavier NX and it also works fine.
-sudo reboot+
  
-</code>+A tutorial for how to setup Nomachine is on the way.
  
-==== NoMachine - Much Better Performance ====+More details about NX at [[https://en.wikipedia.org/wiki/NX_technology|NX technology]]
  
-https://www.nomachine.com/AR02R01074+<del>VNC and NoMachine require that a monitor is connected!</del> -> **Better headless with rdp and xfce4?**
  
-Problem: It seems a monitor has to be connected to the Jetson. +===== xRDP with xfce4 =====
  
-<code bash> +RDP (Remote Desktop Protocolis a proprietary protocol developed by Microsoft which provides a user with a graphical interface to connect to another computer over a network connection. Although RDP uses client-server architecture, the rendering of the graphical environment occurs on the client side and the environment is different from the environment running on the remote computer.
-# Switch to "runlevel" (= targetmulti-uer (= not graphical, not single)  +
-systemctl isolate multi-user.target+
  
-# Change default behaviorsystem boots to target +However currently (22/02/2021) RPD in many users (including me) presents an errorin which when establishing the connection the NVDIA logo appears and the connection is closed and the RDP client is closed. Here many users present the same [[https://forums.developer.nvidia.com/t/issue-with-xrdp/110654|problem]].
-# systemctl enable multi-user.target +
-# systemctl set-default multi-user.target+
  
-# HOW TO REVERT THE MODIFICATION?+The solution to render the environment is to install xfce on Jetson boards and use xfce as the graphical environment but the performance slows down and becomes almost unusable.
  
 +A tutorial for how to setup RDP and xfce is on the way.
  
-</code>+More details about RDP at [[https://en.wikipedia.org/wiki/Remote_Desktop_Protocol|Remote Desktop Protocol]]
  
-==== RDP with fcxe4 ====+===== SSH and X.Org Server ===== 
 + 
 +**SSH** or **Secure Shell** is a cryptographic network protocol for operating network services securely over an unsecured network, also has capabilities for remote command line, remote login and remote command execution. SSH by itself is not capable of rendering client-side graphical windows, but it can make use of the **X Window System protocol** commonly known as **X11**, which allows composing and rendering graphical windows in bitmap format, the rendering job is performed on what is known as the **X Server** which runs on the client side. X11 captures the keyboard and mouse events and transmits them to the X Server which in turn communicates with the **X Client** on the remote computer side, X Client sends packets over the **Reply** channel that when they reach the X Server are delivered to the composer that composes the graphic window and returns it to the X Server that displays it on the remote connection side. 
 + 
 +On Jetson SSH boards SSH works perfectly without any problem, but because of X11's own architecture all the graphics processing is done on the computer side (on the remote computer's X Server), which means that it is not the Jetson's GPU that does the work. So the remote PC must have the correct CUDA libraries, the correct OpenGL libraries, etc, which wastes the Jetson's GPU. A forum on this at [[https://forums.developer.nvidia.com/t/running-graphical-cuda-sample-over-ssh-from-within-l4t-docker-container/113027|Running graphical CUDA sample over ssh from within l4t docker container]]] 
 + 
 +A tutorial for how to setup SSH and X.Org Server is on the way. 
 + 
 +More details about the X11 architecture at [[https://en.wikipedia.org/wiki/X_Window_System_protocols_and_architecture|X Window System protocols and architecture]] 
 + 
 +===== X2Go ===== 
 + 
 +X2Go is an open source remote desktop software for Linux that uses a modified NX 3 protocol. X2Go gives remote access to a Linux system's graphical user interface. It can also be used to access Windows systems through a proxy. The main difference with Nomachine which is based on the NX protocol is that X2Go produces a graphical environment separate from the graphical environment of the Jetson board, whereas in Nomachine the graphical environment is a copy of the environment seen on the Jetson. X2Go also allows you to select the desktop environment you want to use (recommended to use LXDE), among them MATE, GNOME, LXDE, XFCE and some others. 
 + 
 +A tutorial for how to setup SSH and X.Org Server is on the way. 
 + 
 +More details about the X2Go at [[https://wiki.x2go.org/doku.php/doc:start| X2Go Documentation]].
  
 IS THIS THE SOLUTION? IS THIS THE SOLUTION?
workshops/nvidia_jetson/jetson/remote_desktop.1613045836.txt.gz · Last modified: 2021/02/11 12:17 by rolf