TX1 Specific arm64 deb repo for cuda 8

I am in the process of automating the creation of a tx1 rootfs and don’t want to have to use jetpack to download all the files I don’t want or need. I have everything in place except the pulling of the Cuda packages. Jetpack uses a deb files to create local repos on the target TX1 (/var/) and then installs them from there. I would like to just be able to use a remote repo and not have my system full of deb files taking up space.

Does Nvidia have a deb repo for cuda and what is the process of using it?

Thanks

hello glennjamin,

i would suggest using the JetPack to install the necessary packages since they has been verified.

however, please take a try to confirm below steps works for your requirement. thanks

  1. get the cuda package download link.
    https://developer.nvidia.com/cuda-downloads

  2. download the cuda package by wget command.
    $ wget --no-check-certificate https://cuda-repo-xxx.deb

One reason JetPack would be more convenient is that https://developer.nvidia.com/cuda-downloads no longer allows direct download of CUDA 8 under ARMv8-a. The “https://cuda-repo-xxx.deb” is not actually a valid URL. Once you get to CUDA 8 I do not know of any way on a Jetson to add CUDA without JetPack.

Thanks for the responses. JetPack installer works fine for the hobbyist or one or two, but if you are going to create a custom image hundreds of times it is way to involved for the user and is a lengthy manual process. I think I am going to have to pull it from the Jetpack and store it somewhere and and install them from a remote folder using dpkg ( which just puts a local repo on the tx1), then install cuda from the installed local repo.

Thanks,
Glenn Ellis

Cloning the root partition of a Jetson which has what you want on it is a good idea for backup purposes even if you have no other reason, but using a clone for some cross compile purposes (as a sysroot for user space cross-compile) has always been high on my list of ways to keep a matching cross-compile environment without a lot of package fuss…the same could be said of using the “/var” directories on a clone image that has CUDA 8 installed (the CUDA and several related packages become a local repository within “/var”, and thus a clone would have the exact structure for propagating copies using rsync, including CUDA 8). My problem is that I can’t install CUDA 8 to a Jetson with my current Fedora host system so a clone won’t work for me…which is kind of ironic because I can download and install CUDA 8 on my x86_64 Fedora host without JetPack (even if I don’t want to install CUDA to my host with JetPack it requires Ubuntu to install to the Jetson).

I’d suggest exploring a previously set up Jetson’s “/var/cache/apt/” (especially subdirectory “archives”) and see if a clone might be a good way to flash with CUDA already in place (the flash.sh “-r” reuse option); or to simply loopback mount the clone and copy what you want as needed. Think of it as a reference copy.

If you are interested in some of the details on cloning, but not specific to the TX1, see:
http://elinux.org/Jetson/Cloning

If you are interested in something specific to TX1 cloning:
https://devtalk.nvidia.com/default/topic/898999/jetson-tx1/tx1-r23-1-new-flash-structure-how-to-clone-/post/4784149/#4784149

Hi,
I had the exact same problem: my Jetsons are stored in a server room so I cannot use JetPack to update them.
My solution to avoid the use of JetPack on Debian (I think it may work for other distributions as well):

  • download JetPack 2.3.1
  • extract the content of the archive : bash JetPack-L4T-2.3.1-linux-x64.run –noexec
  • go to the _installer directory where you will find a Chooser binary
  • ./Chooser -> it may ask for a libpng12 so I installed this lib in my home then :
    just export LD_LIBRARY_PATH+=:path_to_libpng/lib then retry ./Chooser
  • the GUI appears but this is not what is important: you may notice that a repository.json file is created which contains all the link to the cuda, etc packages ! Just find the link corresponding to your CUDA version and that’s it. From a Jetson TX1 :

wget 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
dpkg -i cuda-repo-l4t-8-0-local_8.0.34-1_arm64.deb
apt update
apt search cuda
apt install …

Enjoy !

@slub: I’ve looked for something like that which works on a Fedora host for a long time…thank you! This is especially important since CUDA 8 is not available as a separate package for arm64…JetPack on Fedora does not work, so short of a VM (and because of disk space and frustration with VMs I can’t do that), I’ve been without CUDA 8 on my Jetson (Fedora x86_64 works great with CUDA 8). :) (you know I’m happy if I use an emoji)

nvidia px2 how to install cuda8.0?

hello 512702214,

looks like you’re working with PX2, please file another new issue at correct platform category.

moreover,
you should be able to check NVIDIA DRIVE Platform Documentation here:
https://developer.nvidia.com/drive/documentation
thanks

@linuxdev- Is there an update to this procedure that works with Jetpack 3.3? It would be very useful to install Cuda on our automated system without using the GUI.

-Dennis

So far as I know you need to run JetPack once with everything connected and working (originally the manifest from the partial run on a non-Ubuntu system worked, but this leaves out some content which has changed since this was originally written). This is how the current manifest gets downloaded. Once you have a valid manifest which is updated it should work to use those URLs without an Ubuntu host (you could even use wget from the Jetson).

Keep in mind that one of the major reasons for using JetPack is due to the complicated dependencies. If you have a log of an install to view install order from, then you will have a lot less trouble.

If you have an already installed set of software on a Jetson from JetPack 3.3, then you could just copy the “/var/cuda-repo-whatever/” to get the “.deb” files. Other content going into “/etc/apt/” allows “apt-get” to see the content of “/var/cuda-repo-whatever/” for automatic use without manually adding a “.deb” package manually using “dpkg”.

For automating there are a lot of ways to do this once you have the manifest. You could also make a script to basically copy the right parts from a clone…and then if the clone is updated the future copies would also be updated.

Can you give more details of how you want this to work and how you might want it to evolve over time?

I had the same problem that cuda not installed in jetson after flashing. I really liked the solution proposed by @sjub and download arm64 debian file using
wget 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 To install .deb file I suggest to use gdebi command which can be installed by sudo apt install gdebi-core
After that: sudo gdebi cuda-repo-l4t-8-0-local_8.0.34-1_arm64.deb This made a folder named 'cuda-repo-8-0-local' in /var/ directory. Copy this folder to your home folder using the command: sudo cp -R /var/cuda-repo-8-0-local /home/nvidia/
cd /home/nvidia/cuda-repo-8-0-local sudo gdebi cuda-core-8-0_8.0.34-1_arm64.deb
sudo gdebi cuda-toolkit-8-0_8.0.34-1_arm64.deb sudo gdebi cuda-samples-8-0_8.0.34-1_arm64.deb
$ sudo gdebi cuda-command-line-tools-8-0_8.0.34-1_arm64.deb
You can install others as well but for me this was enough and it created cuda-8.0 directory in /usr/local/
Then just follow th e proced ure described in https://askubuntu.com/questions/885610/nvcc-version-command-says-nvcc-is-not-installed

That’s all. Have fun with jetson :)