Flashing a TX2 on a J120 board - help getting started


I’m very new to the nvidia and computing board world, so apologies if this is a redundant or obvious question. In short, I’m having trouble connecting the TX2 installed on a J120 board to a host computer to flash.

I have a TX2 board with developer kit, but I’ve switched the TX2 onto a J120 board with a 1TB SSD card. I’m trying to flash the TX2 in the SDK Manager to set up JetPack 4.0. Right now, I can’t even get the host machine to recognize the TX2.

I’m powering the J120–> TX2 setup with a power supply set to 12V, which seems to be working (fan turns on briefly, lights flash). I have also connected the setup via Micro-USB with the cable that came supplied with the TX2 developer kit. I have started to go through the SDK Manager 4-step set up process, and have selected ‘Jetson TX2’ and ‘Jetpack 4.2’ as the target hardware and software, respectively. The download and flash process get as far as halfway through step 3, but then fails about 10% of the way through the Flash Jetson OS step.

In the terminal tab, the first error message says “Could not detect Nvidia Jetson device connected to USB. * To validate if the device is in connected correctly, run ‘lsusb’ command on your host, and look for “0955:7c18.”” I ran ‘lsusb’ in terminal and can’t see the device.

I’m using the cable that came with the developer kit and don’t have another micro-usb rated for data transfer, but could get one. Also, I’m running the SDK manager through VM, so that may have something to do with it.

Any advice on how to connect the TX2 via J120 so it can be flashed would be appreciated! I have found a lot of information on how to flash the TX2 with the developer kit, but for the project we have in mind we can’t use that. Thanks so much.

The VM is at fault, and not officially supported. You might be able to get the VM to work if the VM can take complete ownership of the USB device (the TX2 in recovery mode is a custom USB device). The problem is that during flash the TX2 cycles through a series of USB disconnects and reconnects, but upon reconnect, probably the host to the VM takes ownership instead of the VM. Use a normal install instead of a VM, or possibly find a way to make the host always give that USB device to the VM regardless of how many times there is a disconnect and reconnect cycle.

The problem is that your host computer which runs sdkmanager can’t recognize the TX2 as an OTG USB device when you try to connect through the Auvidea J120 board. Edit: at least this is the case with my Rev 8. According to the Auvidea documentation flashing should be possible with Rev 9 of the J120.
What you can do is to put the TX2 back on the development board, flash it and then put it back on the J120.
You need also to apply all the J120 device tree patches in order to get it working with the J120.
You can download it from the Auvidea support pages.
Note that the Auvidea patch only supports Jetpack 4.2. For version 4.2.1 and 4.2.2 there is apparently no official support yet as I just found out.

Good point…if the board cannot go into recovery mode, or if the USB port does not support device mode, then this would be equivalent to the VM losing the port.

Thank you both so much for the responses. I put the TX2 back on the dev board and tried to flash it that way, but unfortunately it still doesn’t seem to work. I am able to see the usb device using lsusb now. In this case I get two error messages: that only one nvidia device is detected, as expected, and that the Jetson device is in recovery mode… which seems correct so I’m not sure why those show up as errors? Then I get the error: Flash Jetson TX2: lost connection. It consistently seems to show up as recognized on the computer’s VM, but the ‘lost connection’ error seems to disagree. Does flashing with the dev board still require disconnecting and re-connecting?

The final error message before the installation failed message came up was "install ‘Flash Jetson TX2’ failure, command <cd … > terminated with error’

Thanks again.

The VM is at fault. USB enables and disables during the flash, but the host to your VM is only giving the VM ownership part of the time. The host PC must make the Jetson device owned by the VM 100% of the time no matter how many times there is a disconnect and reconnect. Think of the host PC as a USB wire with an intermittent break.

Hi, I switched from VM to using Linux run off a flash drive. I’m having the same problem, where the NVIDIA device is not detected. On the dev board I can detect and flash the TX2, but when I switch the TX2 onto the J120 board I can no longer see it using lsusb.

Are there instructions somewhere for flashing the TX2 using the J120 board? Do I need to do a full install of ubuntu on my computer instead of running off a flash drive?

Thanks for the help.

The device tree (from the manufacturer’s board support package) is different when you switch carrier boards. You can flash from any board, but actual run time requires the correct BSP/device tree for that carrier.

You’d need to get the BSP from Auvidea for that board which matches the particular L4T/JetPack release being flashed.

Sorry, i’m still really new to this and I’m not sure what you mean. Do you mean installing the correct firmware? I downloaded the firmware for J120 from auvidea.eu/firmware/ and ran “sudo ./apply-binaries.sh” in the Linux_for_Tegra directory.

What Jetpack version have you installed?
Every version behaves unfortunately different in regard to the Auvidea J120.

I installed Jetpack 4.2 in SDK manager.

Ok as long as it is 4.2 and not one of the newer versions 4.2.1 or 4.2.2 and you have the Auvidea 2.0 firmware patch from their support page installed, flashing through the micro usb port on the J120 board should work.
If not, please contact the Auvidea support directly.

My concern is exactly what @mtbsteve is suggesting…the question of whether the downloaded content from Auvidea is intended for that JetPack/SDK Manager release. If mismatched things won’t work as expected.

When I say device tree it is a subset of what Auvidea provides. It isn’t really considered firmware, but the concept is similar. During boot the routing of various pins of the SoC which have optional function will be set up based on the carrier board’s wiring. If this is incorrect, then parts of the Jetson will have the wrong function or the function will be connected to the wrong wire. This content is added to the other content in the “Linux_for_Tegra/” directory (or subdirectory) prior to flash, but the content must match the release version of the NVIDIA part of the flash.