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/<local-repo-name>) 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
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/<local-repo-name>) 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

Glenn Ellis
Firmware Engineer

https://tealdrones.com/

#1
Posted 12/20/2016 01:41 AM   
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. [url]https://developer.nvidia.com/cuda-downloads[/url] 2. download the cuda package by wget command. $ wget --no-check-certificate https://cuda-repo-xxx.deb
Answer Accepted by Forum Admin
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

#2
Posted 12/21/2016 03:40 AM   
One reason JetPack would be more convenient is that [url]https://developer.nvidia.com/cuda-downloads[/url] 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.
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.

#3
Posted 12/22/2016 01:27 AM   
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
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

Glenn Ellis
Firmware Engineer

https://tealdrones.com/

#4
Posted 12/31/2016 12:42 AM   
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 ([i]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[/i]). 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: [url]http://elinux.org/Jetson/Cloning[/url] If you are interested in something specific to TX1 cloning: [url]https://devtalk.nvidia.com/default/topic/898999/jetson-tx1/tx1-r23-1-new-flash-structure-how-to-clone-/post/4784149/#4784149[/url]
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

#5
Posted 12/31/2016 01:26 AM   
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 !
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 !

#6
Posted 01/20/2017 01:32 PM   
[u]@slub[/u]: 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). [color="green"]:)[/color] (you know I'm happy if I use an emoji)
@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)

#7
Posted 01/20/2017 04:33 PM   
Scroll To Top

Add Reply