Hi,
I want to use my jetson tx1 development kit on my mobile robot. So I want to control it remotely without connecting cables (ex:connecting to the screen via HDMI).In this way, I can run codes inside it via my ubuntu-based computer. Please could you please tell me clearly how to control jetson tx1 remotely?
Thanks in advance.
Just use ssh if you have WiFi running. Assuming your Jetson has IP address 192.168.1.3 and is visible to the host PC:
# Prompt for login:
ssh 192.168.1.3
# Prompt for password of user "ubuntu"
ssh ubuntu@192.168.1.3
# Run command "ls" as user "nvidia"
ssh nvidia@ssh 192.168.1.3 ls
There are also times you would want package “ssh-askpass” installed on your host computer. Example: For password prompt in a GUI app using “sudo”.
If you want to run a GUI X app on the Jetson, but display remotely (this can have consequences you do not want):
ssh -Y ubuntu@ssh 192.168.1.3
xterm
The “consequences” are that this forwards X events and offloads some of the work to your host PC. If this happens to be a CUDA program, then it will try to offload CUDA work to the PC (and if the PC has the wrong version of CUDA it will fail…or OpenGL, or any GPU access support). Benchmarks might be quite astonishing if you offload to a 1080Ti and don’t know this is going on.
To be sure your Jetson is actually independent you’d need to run a virtual desktop. Then any CUDA app would be guaranteed to run on the Jetson even with no monitor (CUDA doesn’t care if the desktop is virtual or if a real monitor is connected). This has the advantage that your host will be able to interact with a GUI desktop if you want, even if that desktop is on Windows or a Mac.
Additional note: I set my Jetsons up with an ssh key to avoid needing passwords. I also unlock root long enough to set root up with ssh keys, and then relock the root account…this means root can be accessed directly by ssh when using a key, but is still otherwise only available via sudo. Because of this I can run commands such as this without any form of sudo or password if I am on my host with the right keys:
ssh root@192.168.1.3 "shutdown -r now"
If I make the 6 steps that you said at the beginning, will I be able to control it remotely?
Last question. Do I need to have any programs installed on my computer to remotely control my Jetson TX1?
As long as you have a network connection you can use ssh for remote control. If you are looking for realtime control, e.g., like a joystick with guaranteed fast response, then you’d be in trouble. If you’re looking for typical interactive sessions, then you’ll be ok with this. You will need to give more details on what you mean by “control” to give any meaningful answer. Typically any Linux desktop system already has “ssh” on it, and so does the Jetson.
Thank you . I can access to JetsonTX1 romotely. But for example, when I run a program in the Jetson TX1, how can I see the resulting image on my own computer?
This is where you need a virtual desktop server. The software runs on the Jetson, but the output is just an interface to a client rather than to an HDMI connector (the client can run on another Linux box, or Windows, or Mac). I don’t have any suggestion on a specific virtual server, but here are some links which might help:
[url]http://ubuntuhandbook.org/index.php/2016/07/remote-access-ubuntu-16-04/[/url]
[url]https://devtalk.nvidia.com/default/topic/1001017/jetson-tx2/remote-desktoping-into-jetson-tx2-from-windows-10/post/5123184/#5123184[/url]
[url]https://devtalk.nvidia.com/default/topic/995621/jetson-tx1/jetson-tx1-desktop-sharing-resolution-problem-without-real-monitor/post/5159559/#5159559[/url]