for my project, i do need to control Jetson Nano with remote access.
I have read some topic about this subject but nothing really exciting.
First, will desktop sharing work (one day) ? For me, calling this application in jetson nano configuration options always crash.
Will Nvidia work on a easy and performing way to remotely control Jetson Nano using GUI ? It’s really important for my project. If i can’t remotely control my Nano, i won’t be able to use the Nano to control my allsky camera (and all my work with the Nano will go to trash).
With raspberry pi, RealVNC server works well (using broadband over line connexion).
With Odroid N2, TightVNC works quite well.
I think Jetson Nano needs a very good way to be remotely controlled and maybe Nvidia could help me (us ?), providing a good software solution and a clear HOWTO ?
Do you need to stream the desktop or just the camera stream, because the former is a lot harder? The latter, on the other hand is fairly easy to accomplish with excellent perforance using something like GStreamer and Nvidia’s accelerated components. On linux there are few good solutions for embedded remote desktop sharing with the performance you’re probably looking for, especially not over the internet.
There are some proprietary solutions that work passably, but they’re mostly all X86. I personally use X over ssh for nearly everything but it’s not really suited for streaming video.
I think that’s an excellent suggestion. Nvidia certainly has the experience to do it and what you are asking for is a frequent request here on this forum. If NVIDIA provided an accelerated remote desktop for Tegra, I think a lot of people would find that useful. Maybe they’ll start working on something.
I haven’t tried this on Nano, but with R31.1 on Xavier, I have been able to run tigervnc-scraping-server and remotely connect from a TX2 R28.2 with xtightvncviewer (prefered, but most of other VNC viewers work as well).
The scraping server requires an open display to clone, so you would set your user (belonging to video group is mandatory) as auto-login (you can do that from Ubuntu settings), so that a display is created at startup before launching server.
If you have no monitor connected, the display may be 480p only.
If you have a monitor connected, it will be the size decided by nvidia xserver for your monitor from its EDID.
How to set a given resolution is still obscure to me…
Do you need to stream the desktop or just the camera stream, because the former is a lot harder? The latter, on the other hand is fairly easy to accomplish with excellent perforance using something like GStreamer and Nvidia’s accelerated components. On linux there are few good solutions for embedded remote desktop sharing with the performance you’re probably looking for, especially not over the internet.
There are some proprietary solutions that work passably, but they’re mostly all X86. I personally use X over ssh for nearly everything but it’s not really suited for streaming video.
[quote]
I need to stream the desktop because in my project, Jetson Nano controls the camera directly and i just want to be able to control the Nano from my laptop. Nano manages the camera setup, acquisitions etc. I can’t choose the camera streaming solution because it’s a 6Mpx camera with possible high framerate and as i get raw images, the streaming could not be able to manage such amount of data.
I really think Jetson Nano needs a good solution for remote control and i am pleased you agree with me.
Jetson SBC are really great and good remote control software is a must have. Nvidia, if you read those lines … ;-)
i have spent 4 hours to try to get tightvnc work with Jetson Nano.
In fact, i have lost 4 hours.
I DO think it would be very helpful for a lot of people if NVIDIA could bring us a very clear method to control Jetson Nano with remote software (headless jetson nano !).
In fact, it is really boring to try to get vnc software running with jetson nano without any good result.
SO PLEASE NVIDIA, try to make something ! Just think about rapsberry Pi with build in VNC server in Rasbian ! It was very clever from raspberry organisation. Really useful. You could make the same.
I really need a solution otherwise, i can’t use Jetson Nano for my sky survey system.
Well, if you’re sending the video through desktop streaming, it’s not going to be raw images anyway. The images are going to be compressed one way or another and it’s unlikely a steady or high frame rate is going to be possible. I agree it would be nice if Nvidia had an accelerated vnc for nano, but given your application, i’m not sure it’d help you. I know nothing about astronomy, but might it be possible for you not to need a high frame rate to be sent from the nano?
Assuming you are capturing raw frames at a high frame rate so you can combine those samples and remove noise, can’t you do that on the nano and then send that combined raw frame, say once a second (possibly storing a copy locally as well), since the sky isn’t moving quickly?
Then, you split your software into two parts, a server to process frames, serve images, and respond to control signals, and a client to receive video an send control signals. It could even be web based. If you’re into Python. Django could work for the web portion (or even Flask, but Django has a lot of benefits like authentication and user management code you don’t have to write yourself).
in fact, Jetson Nano controls the camera, make treatments and save the video on a local SSD through USB3 (i can save RAW or compressed video) so i don’t have bandwidth problem.
I just need to see Jetson Nano desktop on my laptop. This solution works well with the software i wrote :
i control the motorized mount with the raspberry pi using realvnc and wifi
i control camera with the oter SBC (i made tests with Odroid N2 and it works fine) using tightvnc and broadband over line.
I need more time to find a solution with Jetson Nano but it is too bad we don’t have an easy solution with Nano. I’d prefer make test with sky capture rather than trying to make remote control work.
ssh -X will probably work for you if you can put your control app in a separate window from the video. Ssh -X is very effectuent when not sending complex graphics. It’s actually forwarding drawing instructions rather than a rasterized image. Detailed instructions on how to set that up are here:
On Windows you must then install an X server like VcXsrv and put 127.0.0.1:0.0 in putty’s x server display value. Then if you launch a gui app through putty it should appear on your screen. Mac OS also has x servers. I used XQuartz but that was a long time ago. On Linux there is nothing to install and should just work with ssh -X someuser@somehost
You don’t even need X running on your nano so you can save memory by shutting it down with “sudo systemctl isolate multi-user.target” you will still have terminals via HDMI you can switch between with Ctrl+1, Ctrl+2, etc.
If you could split that into two windows it would probably work fine via ssh -X so long as you closed the video window. If you wanted a remote video stream as well you would have to figure out some other way to encode, send and decode it on the other end.
Remote GPU graphics under Linux generally doesn’t work well, no matter what the Linux source and destination.
For the Tegra, it’s extra hard, because the EGL integration framework for it assumes direct screen attachment – it’s an embedded system, after all.
I recommend designing/using command-line capable software, or hooking up a good HDMI cable and real monitor to the Jetson for running GUIs locally.
That’s why I’d recommend scraping server…It keeps a local display (as opposed to remote X server that might give a boost if remote machine has a NVIDIA graphics card with CUDA, …or not). Indeed, X server is more than a display server when considering CUDA.
Just follow the instructions in the link I’ve sent in my first post and you should be able to move forward with it.
Many thanks for the link. I will try this solution.
I tried TigerVNC without any kind of success at all. So i went back tightVNC and once, i succed to get remote control ! But i made changes in xstartup file and i went to grey screen without Nano desktop.
It’s a bit hard to get something working but i keep trying to find a solution.
It works ! It is not perfect but it does the job and it will allow me to continue tests with my system outdoor while i will be indoor to control everything.
This solves my main issue and i will be able to continue my work. Maybe Nvidia will give us a more powerful tool one day but for now, i can work.
Hi Easybob
I am also planning to do something like yours. I wish to control Jetson Xavier NZ with remote access from windows 10 PC from geographical location, to run some experiments using Pi Camera (object detection) and do some file transfer, using GUI. Would your solution work in my set-up?Since your last message, were there any further solution that I could use without any speed penalty?
to be honest, i did not make other tests with Nano or Xavier NX. Sometimes, i take a look about remote control to see if there is something really new but from what i see, nothing really exciting.
I DO believe Nvidia should work on remote control for Jetson serie to provide us good remote control software. Jetson headless remote control without to much speed penalty is a MUST HAVE !
I think Jetson SBC can make autonmous job but they also can be some remote “eyes” and we need very good remote control software.
Almost a year old thread! Hopefully you can mark this as solved, but we did a write up on how to remote SSH into a Nano, on any network, anywhere in the work as long as it is on the internet. Take a look on how we did it here. I hope this helps!