I am an absolute newbie with Jetson Tx2 Development Kit (I got it yesterday).
I unpacked it, turned it on, installed the software and seems to be running well. A nice Ubuntu Desktop screen appears.
I want to jump start developing on this device. I read I need to install JetPack.
My very first question is: Should I need a separate host PC to install/run Jetpack, or can I use the same Jetson Tx2 as a development environment?
My apologies for such questions. I will really appreciate anyone’s answer.
I am an absolute newbie with Jetson Tx2 Development Kit (I got it yesterday).
The Jetson’s operating system can only be upgraded by flash (built-in Ubuntu tools will break the Jetson…you can upgrade packages ok, but entire o/s version upgrades will fail). The flash program runs on a desktop x86_64 Linux PC, and will not run directly on the Jetson (Jetson’s cannot “self-flash”).
Some of the software many people use with a Jetson is made available through JetPack (think of GPU-related development). Aside from flashing this is the simplest way to get the software on the Jetson. There are some ways to manually extract software packages and information based on JetPack, but JetPack would simplify life for you. JetPack itself is designed for running on Ubuntu 14.04 (flash uses any Linux desktop PC, JetPack adds the requirement that the host be Ubuntu 14.04…though some people have it working under Ubuntu 16.04).
Note that you will not find full integrated development environments which run on the Jetson. There are many editors and tools of course, but for example the NVIDIA version of Eclipse (“nsight”) requires a desktop PC and is set up for cross-platform development (versus running natively on the Jetson).
It is highly likely you will end up wanting to flash to a newer operating system on the Jetson, so a desktop Linux PC is hard to avoid. Some people use a VM for this, but it is a difficult setup at times.
Thank you for your reply.
Can I use a Ubuntu VM in my PC, or should you suggest to have a completely separate Desktop PC for JetPack?
Although there may be some workarounds to improve the reliability of flashing from a VM (such as increasing the USB buffer size in the VM configuration), the official requirements are to have a dedicated or dual-boot x86_64 machine with Ubuntu 14.04 (not LiveCD). You can also get by with Ubuntu 16.04 on the host, some may prefer (if you run into OpenCV issue on the host, choose in JetPack not to install
OpenCV4Tegra For Host -
you can still have JetPack install OpenCV to the target Jetson).
Thank you. That fully clarifies the situation and my next steps.
I did the whole jetpack 3.0 flash programming on a new Jetson Tx2 with an Ubuntu 16.04 host and it was OK, completed OK and works
Though i also would like to understand in which cases, a target IDE code development does make sense
I do development on the Jetson directly. I use git, vim, make, and GCC, connecting over SSH, and they all run fine.
Compiling some kinds of code may run out of RAM, because there is “only” 8 GB RAM available.
Also, compiling very large projects may be slow, because the eMMC internal flash storage is not particularly fast; you can improve this by using an external SSD on the SATA port.
If you are used to large, chunky IDEs written in Java, and use a display attached to the device itself, you may find that it runs with fewer resources than you’d find on a desktop PC. If this is a problem for you, cross-development may be better.
Similarly, if you do the kind of development where you need to build and test “full install” images, you’d want to do your development on the host, so it can build the images and flash them; you’ll lose whatever changes you’ve made on the device each time you flash.
Thank you for this explanation
Today I while i was trying to use my host machine to flash the TX2, I came up with an error during opencv installation and cuda toolkit installation. The program does not move on without completing opencv installation and it is not again possible to install it with suggested command of sudo apt-install.
The error that i am getting is : Error installing cuda-toolkit-8-0 to host, please check /home/nazlit/JetPackL4T-3.1/_installer/logs/64_TX2/cuda_host_tx2.log for more details
and the opencv part error is just “ERROR 1”
I use an x86 ubuntu with the 16.04 LTS
Could you please help
On topic here, I’ve been told by my ITS department that we cannot put an Ubuntu machine on our network due to licensing concerns (Ubuntu is free, will be recognized as an intruder system etc…). My guess is that flashing a fresh copy of RHEL6 or RHEL7 would basically negate all the JetPack stuff I could install. Any suggestions ?
First: The role of IT is to figure out how you can do your job while still fulfilling legitimate company security needs. You need Ubuntu to run the Jetpack. If they say “we don’t know how to make Ubuntu work on our network” then they are failing at their job. (All network security management platforms allow things like exceptions for specific MACs and so forth, it’s just a question of how will they be comfortable making that work.) Other common enterprise options include special “engineering/development” VLANs that are isolated from the main corporate LAN.
Second: A quick hack could be to buy a cheap wifi/router with a few Ethernet ports, plug the “upstream” into the corporate network, and plug the Ubuntu machine and the Jetson into the downstream ports. Best is if the router actually allows you to configure firewalls/NAT/forwarding/DHCP such that it can look legitimate to your nework system. Netgears/DLinks are too consumer-ey for some of these things, so you might want to try something like a Mikrotik Routerboard (which is a great, cheap, device, but requires that you are good with networking to run it.)
Third: The Jetson runs Ubuntu too. If your IT doesn’t like Ubuntu on the network, then it will not like the Jetson on the network.
There is no legal issue for putting Ubuntu on the network so far as Ubuntu’s licensing goes…your company isn’t claiming ownership of the software for resale. Every single Linux out there…even the paid support versions…are mostly free software under the same license. An Android smart phone uses a Linux kernel as well (the smartphone dealers make a lot of money on the phone…they can claim ownership of their part of the software…the rest is free and open source). I’d have to agree with @snarky…it’s more practical to approach the IT department and find out why they think Ubuntu is a problem but not other Linux systems…perhaps they have some special requirement, but licensing won’t be valid so long as they are not selling Ubuntu as their property…anyone can install and use it for pretty much any purpose other than ownership of the software.
You can flash on command line with any x86_64 Linux…all of which are probably deemed a problem for your network. Only the Ubuntu 14.04 and 16.04 hosts can use JetPack. You cannot flash from Windows or Mac (someone might suggest a VM, but these don’t work well and can be frustrating…plus you are still installing Ubuntu).
I recently purchased a Jetson TX2 development kit and have completed the installation of JetPack 3.0 on it. However, I found out I cannot go beyond that to install DIGITS and drivers for DNN training because my Ubuntu 16.04 laptop host simply does not have NVIDIA GPU in it. My questions are:
Is it a requirement to have a host PC/Laptop with NVIDIA GPU in it for DNN development and training? It is true that I cannot use my laptop for such purpose?
Can I instead use the Pascal GPU on the Jetson TX2 devkit to install DIGITS and drivers for development and DNN training on the Jetson TX2 itself?
I hope I ask the right questions and would appreciate if anyone can help out in this regard.
1. We recommends to have a desktop GPU for training and use a Jetson platform for inferencing.
Check our solution here: https://github.com/dusty-nv/jetson-inference
2. No. DIGITs is not working on TX2 since no nvidia-smi support.
You can use Caffe/TensorFlow to train your model directly.
But, in general, we found bad experience on the limited storage and data bandwidth.
If the desktop GPU is not an option for you, you can check our cloud GPU solution.
Thank you AastaLLL for your comment. Budget consideration, I’d love to adopt the last solution/workaround your provided. My understanding – please correct me if I am wrong:
Training on cloud service providers, such as Amazon AWS, Microsoft Azure N-series, or Google Cloud. In this case, NVIDIA GPU Cloud (NGC) can help me deploy deep learning frameworks to these services.
My host Ubuntu 16.04 laptop stays slim (without GPU in it) for basic functions such as downloading trained networks then delivering to TX2 for inferencing, and flashing JetPack to TX2 when needed.
This combination would be the most cost efficient solution option given my budget constraint. Thank you. Really appreciate your advice.
YES. This will be the most cost efficient solution.
You can check our tutorial for more information: