We started working with the NVIDIA Jetson TX2 Development Kit and wanted to share a few ideas after our first few weeks with the small developer kit. Although NVIDIA has had several iterations of these developer kits, there are several nuances that can be important when working with the kits.
NVIDIA Jetson TX2 Tip #1: Be careful with what you upgrade
We managed to bork the Ubuntu installation on the Jetson TX2 through the indiscriminate apt upgrade and apt dist-upgrade’s. We also heard that apt do-release-upgrade is basically a sure-fire kiss of death at this point. If you do try a do-release-upgrade, see NVIDIA Jetson TX2 Tip #3.
Our advice: Be careful and upgrade individual packages if need be.
NVIDIA Jetson TX2 Tip #2: nvidia-docker is not currently working
At GTX 2017 NVIDIA said it was making a big push towards machine learning in containers. At STH, we use nvidia-docker extensively as it is awesome. For the record, I told Raja Koduri at AMD Tech Day 2017 that AMD needs something similar. I offered to make the first donation to a Kickstarter campaign getting similar function for AMD just after this picture. Nvidia-docker is awesome.
If you try using nvidia-docker with the Jetson TX2 there are two potential issues. First, docker may not work. Second, as of October 2017, Jetson TX2 nvidia-docker support, “it’s not on our near-term roadmap” per Github.
Our advice: Make more threads like these until it is supported by NVIDIA. NVIDIA has said they want to deploy using containers.
NVIDIA Jetson TX2 Tip #3: Have a Ubuntu 16.04 LTS desktop handy
When we tried recovering after the update, we noticed that the machine was not booting into Ubuntu. As a result, we had to recover. While we use Ubuntu 14.04 and 16.04 (a LOT) we normally use the server distribution, not the desktop. The NVIDIA Jetson flashing and recovery tooling is based on a GUI application. We tried a few methods, in the end, the faster option was to just have a Ubuntu 16.04 LTS desktop machine handy. Having corrupted the Jetson TX2 trying to update several times, we now have an Intel NUC with a Linux desktop hooked up via the serial console at all times just to re-flash the system.
Our advice: Get an inexpensive Ubuntu desktop setup if you do not already have one. Core i3 Intel NUCs work well for this.
NVIDIA Jetson TX2 Tip #4: Buy a serial console cable and install it
You will also need a serial console cable to make your 115200 serial connection. These sometimes have different color wires. We used generic Amazon USB to TTL varieties which worked fine.
Our advice: Spend the $10 and get one before you find yourself needing it.
NVIDIA Jetson TX2 Tip #5: Default Username/ Password and Hostname
The default username and password for the NVIDIA Jetson TX2 is nvidia // nvidia. The default hostname is tegra-ubuntu.
Our advice: Change this as soon as you can but bookmark this page for when you eventually have to reset the machine.
NVIDIA Jetson TX2 Tip #6: Add storage
The NVIDIA Jetson TX2 can accept either SATA (recommend 7mm SSDs) or PCIe storage. We successfully added NVMe storage, e.g. the Intel Optane Memory m.2 drive using a PCIe to m.2 drive converter.
Our advice: If you are going to rely upon larger data sets, move off the eMMC storage and install a secondary storage device. If you use a SATA SSD, get a 7mm variant as thicker drives will not fit.
NVIDIA Jetson TX2 Tip #7: There is a Ubuntu Desktop
This is one of those tips that many folks miss, but the default tegra-ubuntu installation actually has a Ubuntu desktop environment by default. You can hook a HDMI monitor and a keyboard/ mouse up to the node immediately and get output.
The NVIDIA Jetson TX2 is one of the better small ARM64 developer boards out there. The added Pascal CUDA compute cores add a lot more processing power. In terms of raw performance, we were actually surprised with how well the ARMv8 cores performed. On the software side, developer kit means just that, it is for those with solid Ubuntu Linux know-how and Internet search skills. Being under-prepared for the dev kit will result in hours of lost time.