The command line for flashing works on any Linux x86_64/amd64 host PC. The GUI front end to this requires Ubuntu. If you wish to flash, then it is easy on any Linux (you’d use the driver package and sample rootfs package). Extra packages though won’t be available without JetPack/SDK Manager.
In the most recent L4T R32.3.1 (from JetPack/SDKM 4.3) there is a possibility of the Jetson itself downloading and installing those extra packages after the flash, but I have not checked this. Most people would initially download extras like CUDA using JetPack during the install, and then only update via the local Jetson. However, I think you will find this works for you. Explanation follows…
The “apt” command uses known repositories over the internet to try and resolve dependencies and do remote download. In the past the NVIDIA packages were presented as loose files, and not using a “.deb” package (and thus in the past “apt” could not be used for those files). In R32.3.1 there are now “.deb” packages instead, and NVIDIA now produces (for R32.3.1+) an online repository which works with “apt” (previous releases did not do this).
The default system list of repositories exists in “/etc/apt/sources.list” (human readable, you could browse this to see how it works). Supplemental repositories for third parties can be added in “/etc/apt/sources.list.d/*”, and L4T R32.3.1 adds a file there: “nvidia-l4t-apt-source.list” (this is how the Ubuntu install knows to look at the NVIDIA repository for packages). If you run the command “sudo apt update”, then the list of packages in the system are updated, and compared against the repositories. If you were to then run “apt search cuda”, then you should find a “cuda” package available and could install via something like “sudo apt-get install some_package_name_like_cuda”. The trick is that you must know the name of the package you want to install. For you I would say this is a good alternative.
Since JetPack/SDKM would download files for you, but you are using command line, you will need to manually go to the L4T downloads page and do this yourself. The most recent L4T (currently R32.3.1) is here:
(you probably need to go there, log in, and then click the link a second time if forwarding does not work)
You would want to download the “driver package”, and then unpack it on a partition which is a native Linux filesystem type. You will want to be sure you have at least 20GB of space, probably 25GB is better. Then:
# Do NOT use sudo: tar xvfj Tegra210_Linux_R32.3.1_aarch64.tbz2
Then download and install the sample rootfs:
cd /where/ever/it/is/Linux_for_Tegra/rootfs/ # DO use sudo: sudo tar xvfj /where/ever/it/is/Tegra_Linux_Sample-Root-Filesystem_R32.3.1_aarch64.tbz2
Now do a one-time preparation (there may be some QEMU packages or setup required, and if you have an error, see https://devtalk.nvidia.com/default/topic/1072487/jetson-tx2/jetpack-4-3-sdkmanager-ubuntu16-04-error-file-system-and-os-chroot-failed-to-run-command-mount-exec-format-error/post/5433694/#5433694):
cd /where/ever/it/is/Linux_for_Tegra/ sudo ./apply_binaries.sh
From this point forward you can flash any time you want to without repeating the above steps.
A command line flash would go something like this:
cd /where/ever/it/is/Linux_for_Tegra/ # Put the Jetson in recovery mode and attach the micro-B USB cable to the host PC. sudo ./flash.sh jetson-tx1 mmcblk0p1
The Jetson should boot, and you can create the first boot login information. Be sure to attach a monitor/keyboard during the flash so that when flash completes and it reboots you can enter the new account name/pass.
Then you probably want to spend some time updating first (from the Jetson), and this could take significant time:
# This just makes sure all packages are current: sudo apt update sudo apt-get upgrade
After this you can start looking for the NVIDIA packages, e.g.:
sudo apt search cuda
Then install with the usual Ubuntu mechanism, “sudo apt-get install name_of_package”.