Installing libraries on Jetson TX2 via Jetpack

Hi,

I am trying to install libraries on to Jetson Tx2 using Jetpack 3.0.

The host computer has Ubuntu 16.04 installed. I tried following the instructions given in the JetPack documentation which also flashes the OS. It has successfully flashed the OS, but when it comes to installing the libraries, it is unable to determine the IP address. I have connected both the host computer and the TX2 to a router which is connected to the Internet. I am able to ssh in the TX2 via terminal, but the Jetpack cannot determine the IP address on its own. The error I get is address is already in use.

I have also attempted to put the address manually, which takes about hours to connect but the Jetpack is unable to copy and install the libraries.

Please help.

JetPack requires Ubuntu 14.04. Some people have figured out how to make it work on 16.04, but I don’t know the details. I suspect there may be some change in how networking is set up between 14.04 and 16.04, but that’s only conjecture. There are ways to get to the packages being installed via JetPack, but then you’re back to doing things on the command line. Can you use Ubuntu 14.04?

Unfortunately no. I am setting up for my work. The standard here is to have Ubuntu 16.04 on all computers.

Someone else may be able to comment on what might be done to fool JetPack into working on 16.04. Meanwhile, if you are interested, you can manually extract parts of JetPack, and then copy over to the Jetson (such as through scp).

If you run this on the host, JetPack will unpack files…because you were able to run this already (just not doing what you wanted), then this first step may not even be needed (it’s to unpack files):

bash ./JetPack-L4T-2.3.1-linux-x64.run --noexec
./Chooser
# You can now exit Chooser...previous runs may have already done what this would achieve.

There should now be file “repository.json”. This file contains the URLs which can be downloaded (I use wget) and copied over to the Jetson. Notice that this is a human-readable file, and that because Jetson can install packages to a TK1, a TX1, a TX2, or even an x86_64 host, that you need to pay attention to get only the TX2 files. One file in particular would be the starting point…that’s the CUDA repo info applicable to arm64 architecture and Ubuntu 16.04 (current L4T for both TX1 and TX2 are Ubuntu 16.04…this does not refer to the host). With this CUDA can be installed (which is a requirement for most other things) and the local repo will become available on the Jetson (I think TX1 and TX2 use the same CUDA though). For example, this is what I used to get CUDA on TX2:

wget <a target='_blank' rel='noopener noreferrer' href='http://developer.download.nvidia.com/devzone/devcenter/mobile/jetpack_l4t/006/linux-x64/nv-gie-repo-ubuntu1604-6-rc-cuda8.0_1.0.2-1_arm64.deb'>http://developer.download.nvidia.com/devzone/devcenter/mobile/jetpack_l4t/006/linux-x64/nv-gie-repo-ubuntu1604-6-rc-cuda8.0_1.0.2-1_arm64.deb</a>

Copy this over to the Jetson (scp for example), and install using sudo dpkg. Run “sudp apt update”. Now you can search for and install anything from the local CUDA repo, including CUDA. Other packages should correctly resolve dependencies since you have a repo and not just an individual file.

Thank you for the suggestion. I had done that earlier, let Jetpack download deb files for CUDA, CUDNN and opencv. However, that only installs cuda, but not CUDNN. OpenCV was also not installed properly as I wasn’t able to import cv2 libraries. I also need to install TensorRT. Hence I wanted to get the Jetpack to work.

For what it’s worth:
I installed Jetpack 3.0 on Ubuntu 16.04.2 stock (a brand new install on bare hardware with enough free disk space and simple Intel Integrated graphics.)

It seemed to install and flashed fine. (Note: I had the “press return to continue” not continuing bug, which seems to be there no matter what the OS version.)

Note that I didn’t babysit the entire process, because it took a long time, so if some error was displayed but then timed out, I might have missed it. But it seems to work fine for me.
sha1sum -c /etc/nv_tegra_release on the board is all OK.

I noticed that in “repository.json” there is:

"url": "http://developer.download.nvidia.com/devzone/devcenter/mobile/jetpack_l4t/006/linux-x64/cuDNN-v5.1.zip",

This is the problem of being terribly “manual” and requiring experimentation when using extracted packages, but you might try wget on “http://developer.download.nvidia.com/devzone/devcenter/mobile/jetpack_l4t/006/linux-x64/cuDNN-v5.1.zip”, followed by seeing if you can unpack and install with dpkg. Obviously JetPack saves a lot of experimentation, but if you must use an Ubuntu 16.04 host, then this is a way around the issue. There are many URLs in that repository file which can be downloaded with wget, then you must experiment with the resulting download.

Hi linuxdev,

I followed your previous advice again about downloading the deb files and installing them manually. Having tried multiple times, Jetpack had already downloaded the files and also there were two scripts cuda-lt4.sh and ocv.sh. I copied the deb files along with the scripts onto TX2. I installed CUDA libraries using the cuda-lt4.sh script. Then attempted to install OpenCV4Tegra using ocv.sh, but I still wasn’t able import opencv. Hence, I followed the following link to install OpenCV: http://www.jetsonhacks.com/2017/04/05/build-opencv-nvidia-jetson-tx2/
which worked!

Then I used the TensorRT deb file downloaded by Jetpack to install it using following instructions:
(Source: https://developer.nvidia.com/nvidia-tensorrt-download)
Quick Start Instructions

Verify that you have the CUDA toolkit installed, release 7.5 or 8.0 .
Download the TensorRT debian package (below)
Install GIE from the debian package:
  sudo dpkg -i nv-gie-repo-ubuntu1404-ga-cuda8.0-gie1.0-20170116_6-1_amd64.deb
  sudo apt-get update
  sudo apt-get install libgie1
  sudo apt-get install libgie-dev
Verify your installation:
  dpkg -l | grep libgie
and you should see:
  ii libgie-dev 1.0.0-1+cuda8.0 arm64 GIE development libraries and headers
  ii libgie1 1.0.0-1+cuda8.0 arm64 GIE runtime libraries

Finally, I installed Tensorflow 1.0.1 using the following wheel file:


(Source: http://www.yuthon.com/2017/03/10/TensorFlow-r1-0-on-TX1/)

And for people trying to install ROS: http://www.jetsonhacks.com/2017/03/27/robot-operating-system-ros-nvidia-jetson-tx2/

So basically, follow a manual experimentation as you suggested. Thank you for your help!