Remote desktoping into Jetson TX2 from Windows 10

Sorry if this is a very noob question, but I would appreciate any directions.

I enabled the Desktop sharing options on Jetson TX2 using the instructions in How to Remote Access to Ubuntu 16.04 from Windows | UbuntuHandbook.

But the VNC viewer in my Windows 10 laptop is getting access denied error when I try to connect. The TX2 and my laptop are on the same LAN through a router. I am able to ping the TX2.

My guess is that the Desktop sharing on Ubuntu work only after I login to a user profile. Is there anyway to enable desktop sharing at the login screen of Ubuntu 16.04.

I’ve not set this up before, but the error tends to make me think you need to change a firewall setting in the Jetson (Linux distros have firewall software configured by default).

I don’t know which ports/protocols your VNC uses, but almost certainly the protocol is TCP. You’ll have to check the VNC software docs to see which ports it uses.

On the Jetson you can use “ufw” (console mode) on the command line to adjust the firewall to open required port(s). This is not installed by default, and the default repos in “/etc/apt/sources.list” do not contain the packages, so you’ll have to do some apt configuration and then add the packages.

Before updating or adding packages see this:
https://devtalk.nvidia.com/default/topic/1001118/jetson-tx2/apt-get-update-fixing-when-packages-overwritten/

I’d suggest enabling all of the repos except xenial-backports (and there is no specific reason I don’t enable this, I just don’t need it) by uncommenting everything (except backports) in:

/etc/apt/sources.list

Then to make those repos visible:

sudo apt update

You should now be able to find “ufw”:

apt search ufw

Note that “gufw” is the GUI version of “ufw”, but I was unable to fix all of the issues to use this. There are some missing files and the package tool incorrectly fails to install those dependencies.

About gufw Failing to install:
Note that gufw may require “python-gobject” as a separate install step (sometimes this package dependency is missed depending on what your setup is and Ubuntu version). Additionally, gufw requires “libwebkitgtk-3.0-0”, which in turn fails when libEGL.so.1 can’t open this despite the file existing at “/usr/lib/aarch64-linux-gnu/libwebkitgtk-3.0.so.0”. This may be an issue of libEGL being incorrect about how it finds libwebkit, but it is also possible libwebkitgtk-3.0.so.0 has some incorrect naming in it as the problem (on my system “sudo ldconfig” followed by “ldconfig -p” shows libwebkitgtk-3.0.so.0 is in place and the linker finds it so it isn’t a linker issue).

Perhaps there is a different firewall GUI app in Ubuntu 16.04, but I don’t know of one. Command line may be it.

Hey sibyjackgrove,
in case you are still struggling: I got all kinds of weird effects. Here are some practical tips where I have no desire to dig into the why / bugs:

  • Weirdo 1 seems to be related to Windoze 10 needing a reboot. On the Linux sidebar icons seemed to be clicked, but nothing happened though Desktop Sharing said “allow control”.

  • You seem to have switched off require-encryption already, the common trap.

  • With vnc I never had problems with the port / ufw.

  • In dconf > search for vnc. vnc-password said “keyring” initially and I had no trust that this works and no idea how to change this.
    When I checked “Require user to enter this pw…” in Desktop Sharing, the encrypted pw appeared in dconf in the vnc-password field and authentication-methods changed from ‘none’ to ‘vnc’ and worked as expected then.

  • Apparently it isn’t possible to simply log in via VNC, but Google knows how to. ;-)

Regards
G.

Based on a suggestion I got, I tried to install the Linux version of Team Viewer from https://www.teamviewer.com/en/download/linux/ on the Jetson. I tried through both GUI and through command line using “apt install teamviewer.xxxx.deb”. But I keep getting error message that package is not found (even though I have the debian package for Team Viewer in my folder.

Is it that the Jetson doesn’t support these kind of packages.

What is the exact package name? If it is the wrong architecture it can’t be used.

Apt itself may not install a file in the current folder even if the file is the correct architecture. Apt has its own network search methods which may not run on a file outside of those search options. Generally you’d use dpkg when you have a file right there. I’m not positive but the command would look something like this (see “man dpkg”):

sudo dpkg -i teamvewer.whatever.deb

Thanks for reply. The package name is teamviewer_12.0.71510_i386.deb. The documentation on the website says that it can installed using “apt install” for newer versions of Linux. I will try with the command you posted.

i386 is a 32-bit desktop Intel format architecture (a desktop PC). This cannot run on a Jetson. You’ll want aarch64 (a.k.a. arm64) architecture. Many commercial apps do not support this…if source code is available, then you might be able to build the aarch64/arm64 version.

I found a package for Tiger VNC which seems to be compatibale with arm64,
https://rpmfind.net/linux/rpm2html/search.php?query=tigervnc-server(aarch-64)

If I download “tigervnc-server-1.7.1-2.fc26.aarch64.rpm”, can I use apt install.

The “.rpm” format is for Redhat style packages (including SuSE, Fedora and CentOS). This will not directly install on Ubuntu. If you can find a “.deb” package with the aarch64 in the name then this is the way to go. Had that package been “.deb” instead of “.rpm” this would have been the correct package.

You can extract the content of an RPM package and try to manually place the pieces, but this is generally not going to be practical on anything as complicated as this software is.

I don´t exactly understand why you open another can of worms by trying to install another package.

The pre-installed vnc server is Vino and you need to just enable it. (Remote Desktop app) Check with
ps ax | grep vino
if it is running and be sure you switched off require-encryption with dconf as described above.

I´m using the TightVNC client on Windows 10. Log in locally on the Jetson and then connect. That should get you started. Tweak things (remote login) later.

Regards
G.

I am glad to say I finally got it working after a lot of trials. My complete newbiness to using Ubuntu (or any kind of Linux for that matter) contributed to it taking this long. I thought I’ll write the steps down so that it may help other Windows people like me.

  1. On Ubuntu search (using the icon at the very top) for Desktop Sharing and click on it.

  2. In Desktop sharing, Select following options :
    a) Allow other users to view your desktop
    b) Allow other users to control your desktop
    c) Require the user to enter this password (specify a password)

  3. Install dconfig-editor:
    a)First open ‘Software & Updates’ using search. Then enable 'Community Maintained free and open source software(universe).
    b)Open terminal (again using search) and type “sudo apt-get update”
    c)Then type “sudo apt-get install dconf-editor” (This won’t work if the first step is not followed)

  4. Open dconf-editor (again using search). Navigate to org->gnome->desktop->remote-access: deselect ‘require encryption’. Make sure that ‘authentication method’ is showing ‘vnc’. Also note the port (default is 5900).

  5. From host Windows PC try to ping the Jetson TX2. Then use a VNC viewer software (with Jetson’s IP and port). I tried it with TightVNC, VNC viewer (www.realvnc.com/download/viewer/). Both worked.

The only problem I am having now is that the resolution of the desktop when viewed through VNC is much lower that what I got when directly connected to screen. More Googling should solve that.

Glad you took the standard road and didn’t get lost even more with another app.

To the noob:
If you want to use an app more often (the terminal,… maybe dconf), while open you can right-click the icon > Lock to Taskbar.

ad 5) Except for a non-standard port you only need the IP.

Cheers
G.

You can avoid the whole dconf-editor installation. In order to change the ‘require-encryption’ setting all you need is this line:

gsettings set org.gnome.Vino require-encryption false

In order to change the resolution as viewed through VNC:

sudo xrandr --fb 1920x1080

with the resolution you want.

Cheers

-a

For step 5 i was able to ping my device but can you please explain in more detail how to use the vnc viewer? I just downloaded it but i dont know how to test it. like did you run an example to see that it worked?

I’m using Jetson Nano. Can’t allow me @sibyjackgrove’s step. I can’t even open first allowing page and application does not apper and send me error.