Flashing TX2 with Jetpack 3.2

Dear NVIDIA,

I recently purchased a Jetson TX2, and I am trying to install tensorflow and keras onto the target device.

I installed Jetpack 3.2 to flash my target device. I was able to “successfully” flash my device (with the full packages), and I was taken to the page that said it would flash my target device with CUDA and CUDNN. However, after finishing the flash, when I check the TX2 on my monitor, I cannot find the CUDA and CUDNN packages. (The online videos show that it should appear on my home directory).

Furthermore, when I search my terminal for cuda and cudnn, I cannot find it.

I believe there is an issue with the flashing from the Jetpack 3.2, and I would appreciate the help.

CUDA and CUDNN is necessary for me to properly install tensorflow (which has also not succeeded so far).

I have been trying to install CUDA and CUDNN manually onto the TX2, but I have not succeeded.

Thank you for the help.

If this was added you’ll see related subdirectories in “/usr/local”. So cd there, and ls…see if anything shows up.

Note that you can re-run JetPack at any time and install packages without flashing. In all cases where automatic IP address detect fails (including any reboot of the Jetson which isn’t immediately following a flash) you will have to enter the address manually.

FYI, I hope you are using JetPack3.2.1 and not JetPack3.2. I don’t know if it has been fixed yet, but some servers were providing an incorrect repository.json file for JetPack3.2 after it was deprecated in favor of 3.2.1.

Do try to manually ssh to “nvidia@” to see if ssh works.

Thanks!

To clarify, I am using JetPack 3.2.1.

When I was flashing, my device said that it could not detect the IP address automatically, and it asked me to enter it in manually. However, no screen appeared for me to enter the IP address.

I think that is my issue.

So do both my host computer and target computer have to be connected to the same wired Internet?

Thanks for the help.

The screen isn’t needed for finding IP address if you can see the router’s DHCP logs. Serial console can also be used if you have the cable (serial console works even when much of the operating system is failing). Sometimes if the GUI display doesn’t work you can use CTRL-ALT-F2 and it’ll switch to a text console. Among all of the methods the serial console is most reliable and a bit of “must” for a lot of development. See:
http://www.jetsonhacks.com/2017/03/24/serial-console-nvidia-jetson-tx2/

Most of the methods of adding packages do require wired ethernet between host PC and Jetson, although there is no reason the PC can’t access the internet via WiFi (the PC accesses the internet and then copies files to the Jetson over wired ethernet). No mechanism exists for automating setup of WiFi on the Jetson itself. I’ve heard of manually setting up WiFi and getting it working, though I’ve more often heard of this failing or being unreliable…and never working right after a flash. Unless you like a lot of challenge consider wired ethernet between PC and Jetson a “must”.

Can you give more insight into how to check the ssh?

I’ve never done that before and I am unsure what to do to check if “nvidia@IP address” works.

Thanks

Every computer will have an IP address. Sometimes the address is set manually, but most of the time a router gives out the address after the computer requests an address. That’s a DHCP request, and the address is given in a DHCP response. The router will usually have a web interface and either a log of addresses it gave out, or some sort of table you can view. Every computer has a “fake” address which is really just itself, “127.0.0.1”…the address associated with your wired ethernet will have a similar format. When I say “IP” I’m implying this numeric address.

If you have direct access to the Jetson, then “ifconfig eth0” should give you the address for wired ethernet (it is the “inet” address you are interested in…if there is no inet address, then DHCP failed).

FYI, the technical name of that format is “dotted-decimal”. Names like “google.com” are also an address, but a service looks this up and does a name to number translation…in the end that numeric dotted-decimal address is what you will use. It is critical to find that address.

Command line is just the text terminal. Let’s assume your host knows the Jetson has address “1.2.3.4” (it doens’t really…that’s just a contrived example). You could ping on the command line by typing in:

ping 1.2.3.4
# control-c to stop ping

You can connect via ssh:

ssh 1.2.3.4

…it’ll prompt for a user name and password.

You can connect specifically to the account “nvidia”…it’ll still prompt for password, but it won’t prompt for user:

ssh nvidia@1.2.3.4

When done with your ssh connection you can type “exit”.

JetPack uses ssh, and specifically the “nvidia” account. “scp” is an ssh copy mechanism and uses the same “name@IP” syntax. If ssh works for “nvidia@1.2.3.4”, then scp can also work with “nvidia@1.2.3.4”.

Try to ping the address. Should that succeed, try to ssh to the nvidia account at that address. Should that succeed, then JetPack should succeed if you enter that address and the password for user nvidia.

I have pinged the address, and I was ale to enter the address and password for user nvidia.

What should I do next to get cuda and cudnn installed?

How do I install the packages without reflashing the device?

If CUDA is installed you should see something i “/usr/local”. Do you see anything named with “cuda” from:

cd /usr/local
ls

If so, then it is already there and only configuration to find CUDA is missing.

If not, then when you run JetPack only attach wired ethernet, don’t bother with USB. Don’t put the Jetson in recovery mode, just run it normally. When you run JetPack and get to the tree list of packages and other actions simply uncheck everything in the flash and check only to install packages to the Jetson. Note that if you install samples to the Jetson there may still be some host work because it’ll try to cross compile.

FYI, without recovery mode, or without the micro-B USB cable, flash will not occur even if you say to flash in the steps.

I am able to successfully ping and ssh login with the computer but after flashing display is not there when I connect it to the monitor we get no signal and when I first restart the jetson tx2 some lines came like we get in Ubuntu but still no display whats the error and how can we fix it?

Automatic video configuration probably failed. There is a wire in HDMI (and some other modern cable types) used by the video driver to query the monitor for its capabilities. If anything has interfered with that wire, such as adapters, then automatic configuration will always fail. VGA in particular does not have that wire. Is you cable and monitor purely HDMI?

Second, the only modes accepted have to be an intersection of modes in your monitor and modes the video driver understands. It is possible for the monitor to have odd modes the driver doesn’t accept. If you have the correct cable, then you can add this to “/etc/X11/xorg.conf” to increase logging, and then check “/var/log/Xorg.0.log”…all modes your monitor has will be commented on by the driver. Add this to Section “Device”:

Option "ModeDebug"

I am trying to install CUDA and CUDNN on my device, without flashing, but it still does not work.

I can access the ssh of the wired ethernet, and my host and target are only connected by the same wired ethernet cord.

My TX2 is not in Recovery Mode, and there is no USB.

However when I run the JetPack installer, it says that my device is not properly set up (not in Force Recovery Mode), and then it will ask for an IP Address. I type in the one of the target, and it says that it is already in use. However, when I then continue (enter key), the program exits and my TX2 is not updated with CUDA and CUDNN.

What should I do?

There won’t be a requirement for force recovery mode unless it is trying to flash. The point where it asks for IP address is the point where it thinks the Jetson has flashed and has rebooted into a running system (and thus is no longer in recovery mode).

I’m not sure, but if you are setting it up to where it wants to make your host PC into a router, then perhaps this is what it is commenting about (the address would have already been in use). On the other hand, if you flashed previously and already set your host up as router, then it wouldn’t need to set up a router twice and you could check the option that you have a router appliance (in which case it would leave your PC host configuration alone).

So double check:

  • No need for recovery mode, let it complain, and then move on to wanting IP address.
  • Make sure all flash and host PC installation choices are unchecked.
  • At least for now do not tell it to install samples (which in turn needs cross compiler environment set up on host PC).
  • You might want to start from a clean directory if anything seems odd. Run the JetPack installer again.
  • Be sure that the version of JetPack you are using for packages is also the same version which was used to flash the Jetson.
  • Try to initially make sure only that CUDA is installed. Don't install the other packages until you verify CUDA went in correctly (simplify to this step...if this works, the others should work...if not, then this is a clue).
  • Check in "/usr/local/" for CUDA or other files before and after JetPack install (assuming you did not flash).

If this still fails we can look at logs.