Is there a way to install JetPack L4T completely offline ?

I have bought a TX2 recently, but my host computer has no internet access. The result is that I can’t install the JetPack L4T 3.0.

Although I knew that I can manually download “manifest.json” and “repository.json” in order to download the huge installation packs such as CUDA or Sample Root System, I was stuck at the beginning stage of “Component Manager”. On the bottom of the window it says “Downloading update lock”. Even I put the three downloaded files (update.lock, manifest.json, repository.json) in the directory, it ignores them and still tries to link the internet.

So is there a way to install JetPack L4T completely offline? Or is it possible to get the same software environment by myself without using the JetPack?

Thank you very much

You can manually download the L4T components from the NVIDIA developer website, but not all (for example, the arm64 packages for TensorRT and VisionWorks are only provided by JetPack). I recommend that you temporarily get your host machine internet access, then let JetPack download the packages. At that point you can either install them manually on your Jetson or let JetPack do it. For JetPack to do it there needs to be a network connection between the host machine and Jetson so JetPack can run commands on the Jetson via SSH.

What is the exact Internet and private network setup you have for the Jetson and host, including temporary possibilities? Knowing more about the limitations of your current situation might make more suggestions possible.

Thank you for your reply. My Jetson TX2 board is able to connect to the host computer with Ethernet cable or USB cable, but the host PC has No Way to access the internet, even temporary possibility doesn’t exist.

I know the problem is a little weird but really hope to find some solution.

Thank you for the answer.

I shall give some more specific information. My host computer has no right to access the internet, but I can download install packages on some other computers and copy them to the host computer. I can find the download URLs in the “repository.json” for TensorRT and VisionWorks. However, the question is even I have downloaded all the needed files and copied them to the host computer, the Component Manager of JetPack L4T requires internet access so that the windows is blank and stuck, which means it cannot continue to the stage of downloading files.

And after I read your answer, I think it implies that it is possible to download all the packages and install them manually on the host computer. I am able to connect the TX2 and the host computer with Ethernet cable, may I ask is it possible to flash the OS on the TX2 without internet connection on the host computer?

If you use JetPack it will try to use the internet. If you use just command line and only run a flash, then you are fine with nothing more than a USB cable from the micro-B USB port on the Jetson to the host. This requires the driver package and the sample rootfs from here:
https://developer.nvidia.com/embedded/linux-tegra

A summary for command line flashing:
https://devtalk.nvidia.com/default/topic/982779/jetson-tk1/how-to-perform-a-correct-fresh-ubuntu-install-on-jetson-tk1/post/5040584/#5040584

If you can run JetPack from another Linux computer with a network you can get some of the other packages as well for copy by disk to the host, and then to the Jetson. You’d have to do some work, but if interested it is possible with this and wget. See:
https://devtalk.nvidia.com/default/topic/982848/jetson-tx1/tx1-specific-arm64-deb-repo-for-cuda-8/post/5063053/#5063053
(basically the repository.json file gives you clues on where to use wget to download packages JetPack would have downloaded…but this way does not require the Jetson to be connected at the time of download…nor is any automation available so it is manual)

You are very helpful to provide such detailed information. Thank you very much!

Could you provide a link to the Jetpack components for manual download?

I also do not have internet access on my Jetson nor host Linux machine.

Thank you!

The driver package and sample rootfs and many supporting packages (e.g., documentation, source code) are available separately. The CUDA and related packages are only available under JetPack (which is why I mentioned using wget based on URLs from a partial use of JetPack).

FYI, you can use a browser or download tool from another system to point at those addresses.

Thank you @linuxdev!

How can I use a browser or download tool from another system to point at those addresses? What exactly does this mean?

(Sorry, I am very new to this)

Basically, any browser or whatever could be pointed to anywhere;

Every downloaded package has it signature, as it seems to me, and it won’t just download without being authorized at downloads “developers zone”.

But once we have the signature we can use e.g wget like wget address@filename?signature, as it sems to me;

The files named in a URL can be directly pasted into a browser’s address. If the address is a downloadable file, then the browser should offer to download it. wget is just a browser which has only a command line to copy the file you point at to the local system…it is a highly cut down web browser. Regardless of which web browser you use (e.g., wget or firefox or chromium) a valid web URL naming a file should get the file. That list of URLs for files can be extracted from one of JetPack’s configuration files (there is some effort in sorting it out for the arm64/aarch64 version since JetPack also installs to a desktop host). For information on the file used to extract URLs see:
https://devtalk.nvidia.com/default/topic/982848/jetson-tx1/tx1-specific-arm64-deb-repo-for-cuda-8/post/5063053/#5063053

Then examine the repository.json file, e.g., “less repository.json” in Linux, or any text editor on other operating systems.

An example would be this excerpt from one repository.json:

"description": "CUDA Toolkit for L4T. The NVIDIA CUDA Toolkit provides a comprehensive development environment for C and C++ developers building
 GPU-accelerated applications.", 
...snip...
"download": [
                    {
                        <b>"url": "http://developer.download.nvidia.com/devzone/devcenter/mobile/jetpack_l4t/006/linux-x64/cuda-repo-l4t-8-0-local_8.0.34-1_arm64.deb"</b>, 
                        "checksum": "e54c7a521ed78ed02b4fe9f3d72cafd6d2bafe9e", 
                        "cache": "jetpack_download/cuda-repo-l4t-8-0-local_8.0.34-1_arm64.deb", 
                        "checksumType": "sha1", 
                        "size": "1221853282"
                    }

The entry with “arm64” refers to a file intended for a Jetson TX1 or TX2. The entry with “amd64” refers to a desktop PC. You can eliminate any entry not arm64.

Pasting this into a web browser should get the “.deb” file:

http://developer.download.nvidia.com/devzone/devcenter/mobile/jetpack_l4t/006/linux-x64/cuda-repo-l4t-8-0-local_8.0.34-1_arm64.deb

In Linux you could do this on the command line and get the file without using a full web browser:

<b>wget</b> http://developer.download.nvidia.com/devzone/devcenter/mobile/jetpack_l4t/006/linux-x64/cuda-repo-l4t-8-0-local_8.0.34-1_arm64.deb

Thank you so much for this very detailed answer! I’m still struggling to create the repository.json file.

Chooser won’t run in Cygwin in Windows but I’m not getting the libpng12 library error mentioned at http://warppipe.net/blog/installing-cuda-packages-on-jetson-boards/

Any chance you have a suggestion about how to work around this issue?

It looks like I’ve managed to get the file at “http://developer.download.nvidia.com/devzone/devcenter/mobile/jetpack_l4t/006/linux-x64/cuda-repo-l4t-8-0-local_8.0.34-1_arm64.deb”, but have the following unmet dependencies:
cuda-runtime-8-0, libxmu-dev and libxi-dev.
I assume repository.json would yield the url to download these?

Thanks again!

There are significant requirements in the user environment for the chooser to run…I don’t know the details, but it is easy to believe a default Cygwin environment does not have everything you need. If you go the Cygwin route you are bound to be researching java version requirements, user space libraries, so on…I do not know what all of those requirements are, but it won’t be quick to research. Having a correct environment would be easier on a real install on an external disk that you can connect to the computer, or else a partition actually on that computer.

libxmu-dev and libxi-dev can be installed with whatever package tool that flavor of Linux has…e.g., in Ubuntu with “apt-get”, or Fedora with “dnf”. I have no idea which tool to use as the package manager for Cygwin. The repository.json only shows where to download CUDA files which are part of the release…other dependencies would only be found through standard operating system package management…these are not part of CUDA.

Hi everyone,
Cuda 9 which is installed by jetpack 3.2 is broken on my Jetson. Is there any way to re install it without flashing by jetpack?

Many thanks

Not sure what us broken…you may post the error message for better advice.
You can try to reinstall it with JetPack from host, unselecting all (don’t flash) and just selecting cuda install in post-install steps. This requires the Jetson to be connected to network so that host can connect to it.

Thanks or your answer.
Im trying to import my tensorflow and faced with the following Error:

ImportError: libcusolver.so.9.0: cannot open shared object file: No such file or directory

Beside I checked

/usr/local

there is no “cuda” folder which is supposed to be there! I think this folder is removed after i used “apt-get autoremove” on terminal.

Full error message is attached.
error.txt (2.31 KB)

you may use the following approach when you need to locate a file within system:

sudo apt-get install mlocate
sudo updatedb
 locate libcusolver.so.9.0
/usr/local/cuda-9.0/targets/aarch64-linux/lib/libcusolver.so.9.0
/usr/local/cuda-9.0/targets/aarch64-linux/lib/libcusolver.so.9.0.252

That will either return to you the path where you can find the file or will make it clear that the file is not represented at the filesystem. And if the file is not represented at the filesystem you may approach Jetpack installation method described in the previous post. That will require to connect Jetson with Host PC via type-B micro usb cable , [for post installation it is not required to set the device into the recovery mode, as far as I am concerned, since the post-install utilizes rather network connection, than usb cable ]. And approach installing cuda to the jetson

You can run JetPack at any time and just deselect the flash step. Select only the operation you want. Since flash uses recovery mode and the micro-B USB cable there is no chance of accidental flash if either you don’t have recovery mode on or the micro-B USB cable is not connected.

Be sure to check the console of JetPack while working with it in case it asks for a password or IP address. You may also want to be sure your host has package “ssh-askpass” (“sudo apt-get install ssh-askpass”).