Can't install JetPack on a brand new AGX Xavier. Faulty USB-C port?

I have a brand new AGX Xavier Dev Kit and I can’t install JetPack. I also have a Xavier NX Dev Kit that I’ve been successfully working with for a few weeks. The AGX Xavier’s front USB-C port is connected to my Ubuntu 18.04 system using the cable that came with the dev kit. That’s the USB-C port next to the power indicator LED.

When I run SDK Manager (1.2.0.6738) and plug the Xavier NX into my Ubuntu dev system a L4T-README device appears on my Ubuntu desktop and SDK Manager says that it has detected Xavier NX target hardware. When I do the same thing with the AGX Xavier nothing appears on the Ubuntu desktop and no target hardware is detected in SDK Manager.

I can plug a USB keyboard into the AGX Xavier’s front USB-C port and the keyboard works, so the front USB-C port can act as a USB Host. I think my problem is that my Xavier’s front USB-C port is not able to act as a USB device and that’s required for SDK Manager to detect the AGX Xavier.

The tests that brought me to this conclusion are shown below. My question to the community is: do you agree with my diagnosis? If so I plan to return the AGX to NVidia for replacement under warranty.

Question: Is the USB-C cable faulty?
Test: I replaced the AGX Xavier’s USB-C cable with a different USB-C cable that is known to work - No Change
Conclusion: The USB-C cable is OK

Question: Does the Ubuntu system respond to the connection of the AGX Xavier at all?
Test: I used lsusb and dmesg to monitor what’s happening in the Ubuntu kernel when each Xavier is attached to my Ubuntu system. When the NX is attached there are new kernel messages about a USB device connection and lsusb shows a new “NVidia Corp.” USB device. When the AGX cable is attached there are no new kernel messages and lsusb does not show any new USB device.
Conclusion: The Ubuntu system does respond to the connection of the NX but not the AGX.

Question: Is it a USB version problem? Does the Ubuntu system respond to a different USB 3.0/3.1 device?
Test: I plugged a USB 3.0 webcam into the Ubuntu system and the kernel log and lsusb show that the Ubuntu system recognized that a webcam had been connected.
Conclusion: The Ubuntu system can respond correctly to a different USB 3.0 device.

Question: Will a completely different computer respond differently to the NX and AGX?
Test: I connected the Xavier NX and the AGX Xavier to my Windows 10 PC. The Windows PC recognizes a new L4T flash device when I plugged in the Xavier NX. The Windows PC didn’t react at all when I plugged in the AGX Xavier.

I have a second Ubuntu 18.04 system and I connected both the Xavier NX and the AGX Xavier to it. According to the kernel log and lsusb, the Xavier NX was recognized as a USB device and there was no response to the AGX Xavier.
Conclusion: Two Ubuntu systems and one Windows system recognize the Xavier NX as a USB device. None of the three systems recognize the AGX Xavier as being a USB device or of having been connected to it at all.

Question: What’s happening on each Xavier when I connect it to the Ubuntu computer?
Test: I connected the Ubuntu system to the NX and the NX kernel log shows that it recognized that something had been connected and appeared to set up communication with it. No new USB device showed up on the NX and a new “NVidia Corp” device appeared on the Ubuntu system.

I connected the Ubuntu system to the AGX and the AGX kernel log shows that it recognized that something had been connected. The connection process didn’t get as far as with the NX and ended in three suspicious-looking “Hard Reset Sent to Port Partner” messages. No new USB device appeared on the AGX or the Ubuntu system.
Conclusion: The Ubuntu system is a USB host and the Jetson is a USB device. The NX did connect as a USB device but the AGX did not. I’ve included the kernel messages and lsusb output below.

The following show the low-level Jetson response when connecting it to the Ubuntu system:

Ubuntu system connected to Xavier NX

jim@xavier-nx-1:~$ dmesg
[51327.133609] extcon-gpio-states external-connection:extcon@1: Cable state:1, cable id:1
[51327.133765] tegra-xudc-new 3550000.xudc: vbus state: 1
[51327.133781] tegra-xudc-new 3550000.xudc: exiting ELPG
[51327.135670] tegra-xudc-new 3550000.xudc: exiting ELPG done
[51327.135694] tegra-xudc-new 3550000.xudc: device mode on: 0
[51327.135715] tegra-xudc-new 3550000.xudc: active: 0 => 1
[51327.290930] android_work: did not send uevent (0 0 (null))
[51327.323958] android_work: sent uevent USB_STATE=CONNECTED
[51328.269963] android_work: sent uevent USB_STATE=DISCONNECTED
[51328.302584] android_work: sent uevent USB_STATE=CONNECTED
[51328.357620] android_work: sent uevent USB_STATE=DISCONNECTED
[51328.401532] android_work: sent uevent USB_STATE=CONNECTED
[51328.668488] android_work: sent uevent USB_STATE=DISCONNECTED
[51328.701058] android_work: sent uevent USB_STATE=CONNECTED
[51328.756085] android_work: sent uevent USB_STATE=DISCONNECTED
[51328.798919] android_work: sent uevent USB_STATE=CONNECTED
[51328.989158] configfs-gadget gadget: high-speed config #1: c
[51328.989197] tegra-xudc-new 3550000.xudc: ep 5 (type: 3, dir: in) enabled
[51328.989220] tegra-xudc-new 3550000.xudc: ep 3 (type: 2, dir: in) enabled
[51328.989233] tegra-xudc-new 3550000.xudc: ep 2 (type: 2, dir: out) enabled
[51328.989306] tegra-xudc-new 3550000.xudc: ep 9 (type: 3, dir: in) enabled
[51328.989319] tegra-xudc-new 3550000.xudc: ep 7 (type: 2, dir: in) enabled
[51328.989331] tegra-xudc-new 3550000.xudc: ep 4 (type: 2, dir: out) enabled
[51328.989450] tegra-xudc-new 3550000.xudc: ep 15 (type: 3, dir: in) enabled
[51328.989741] android_work: sent uevent USB_STATE=CONFIGURED
[51328.989776] tegra-xudc-new 3550000.xudc: ep 11 (type: 2, dir: in) enabled
[51328.989790] tegra-xudc-new 3550000.xudc: ep 6 (type: 2, dir: out) enabled
[51328.997456] tegra-xudc-new 3550000.xudc: ep 13 (type: 2, dir: in) enabled
[51328.997473] tegra-xudc-new 3550000.xudc: ep 8 (type: 2, dir: out) enabled
[51328.998539] tegra-xudc-new 3550000.xudc: ep 13 disabled
[51328.998670] tegra-xudc-new 3550000.xudc: ep 8 disabled
[51329.019869] tegra-xudc-new 3550000.xudc: ep 13 (type: 2, dir: in) enabled
[51329.019890] tegra-xudc-new 3550000.xudc: ep 8 (type: 2, dir: out) enabled

jim@xavier-nx-1:~$ lsusb
Bus 002 Device 002: ID 0bda:0489 Realtek Semiconductor Corp.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 13d3:3549 IMC Networks
Bus 001 Device 002: ID 0bda:5489 Realtek Semiconductor Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Ubuntu system connected to AGX Xavier

jim@xavier-agx-1:~$ dmesg
[ 96.339171] ucsi_ccg 1-0008: port0 evt: Type-C Port Connect Detected
[ 96.341185] ucsi_ccg 1-0008: [typec-port0] Cable state:1, cable id:1
[ 96.341273] tegra-xudc-new 3550000.xudc: vbus state: 1
[ 96.341291] tegra-xudc-new 3550000.xudc: exiting ELPG
[ 96.341944] tegra-xudc-new 3550000.xudc: exiting ELPG done
[ 96.341967] tegra-xudc-new 3550000.xudc: device mode on: 0
[ 96.341986] tegra-xudc-new 3550000.xudc: active: 0 => 1
[ 96.733244] ucsi_ccg 1-0008: port0 evt: Hard Reset Sent to Port Partner
[ 97.864607] ucsi_ccg 1-0008: port0 evt: Hard Reset Sent to Port Partner
[ 98.995868] ucsi_ccg 1-0008: port0 evt: Hard Reset Sent to Port Partner

jim@xavier-agx-1:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 046d:c077 Logitech, Inc. M105 Optical Mouse
Bus 001 Device 002: ID 046d:c31c Logitech, Inc. Keyboard K120
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

First, some basics to consider:

  • The L4T-README only occurs when fully booted, not in recovery mode.
  • Recovery mode turns a Jetson into a custom USB device.
  • The micro-USB from an Xavier does provide some serial devices to a host PC, but is not used for flash.
  • If the L4T-README exists, then you can’t flash because it isn’t in recovery mode.
  • The Xavier USB-C should show as a device if in recovery mode.
  • When a successful flash occurs with JetPack/SDKM the unit starts in recovery mode, flashes, and then reboots itself into a normal full boot.
  • Older flash releases already had a name/pass upon flash, newer releases require you to set up name/pass on first boot, otherwise optional software cannot be added.

Are you certain that the Xavier is in recovery mode when detecting it fails from the flash software? Is your host a VM, or native install?

You’re right it wasn’t in recovery mode. I’d tried to put it into recovery mode but apparently I didn’t get it right and didn’t know how to tell if it was wrong. I watched someone else do it on YouTube and then I got the button timing right.

So SDK Manager can now access my AGX target, but I can’t get JetPack to install without many errors on host and target. To simplify things I tried only installing Jetson OS on the Xavier but that fails as well. The drivers seem to install OK according to this message:

19:17:12 SUMMARY: Drivers for Jetson: Install completed successfully.

But then the File System and OS install fails because of some unmet dependencies. Log below. Can you help me fix these failures:

 19:17:13 DEBUG: File System and OS: using adapter to install NV_L4T_FILE_SYSTEM_AND_OS_T194_COMP@JETSON_AGX_XAVIER to /home/jim/nvidia/nvidia_sdk/JetPack_4.4_Linux_JETSON_AGX_XAVIER
19:17:13 INFO: File System and OS: [ Disk Avail:122.36 GB ]
19:17:13 INFO: File System and OS: Using GenericInstaller to Install NV_L4T_FILE_SYSTEM_AND_OS_T194_COMP
19:17:13 INFO: File System and OS: NV_L4T_FILE_SYSTEM_AND_OS_T194_COMP include 1 package
19:17:13 INFO: File System and OS: change working directory to /home/jim/nvidia/nvidia_sdk/JetPack_4.4_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/rootfs/
19:17:13 INFO: File System and OS: [ Package PreInstall Started ]
19:17:13 INFO: File System and OS: current working directory is /home/jim/nvidia/nvidia_sdk/JetPack_4.4_Linux_JETSON_AGX_XAVIER/Linux_for_Tegra/rootfs
19:17:13 INFO: File System and OS: exec_command: sudo apt-get install -y qemu-user-static
19:17:13 INFO: File System and OS: Reading package lists...
19:17:14 INFO: File System and OS: Building dependency tree...
19:17:14 INFO: File System and OS: Reading state information...
19:17:15 INFO: File System and OS: qemu-user-static is already the newest version (1:2.11+dfsg-1ubuntu7).
19:17:15 INFO: File System and OS: 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
19:17:15 INFO: File System and OS: exec_command: sudo apt-get install -y python
19:17:15 INFO: File System and OS: Reading package lists...
19:17:15 INFO: File System and OS: Building dependency tree...
19:17:15 INFO: File System and OS: Reading state information...
19:17:16 INFO: File System and OS: Some packages could not be installed. This may mean that you have
19:17:16 INFO: File System and OS: requested an impossible situation or if you are using the unstable
19:17:16 INFO: File System and OS: distribution that some required packages have not yet been created
19:17:16 INFO: File System and OS: or been moved out of Incoming.
19:17:16 INFO: File System and OS: The following information may help to resolve the situation:
19:17:16 INFO: File System and OS:
19:17:16 INFO: File System and OS: The following packages have unmet dependencies:
19:17:16 INFO: File System and OS: python : PreDepends: python-minimal (= 2.7.15~rc1-1) but it is not going to be installed
19:17:16 INFO: File System and OS: Depends: python2.7 (>= 2.7.15~rc1-1~) but it is not going to be installed
19:17:16 INFO: File System and OS: [ Package PreInstall Finished with Error ]
19:17:16 INFO: File System and OS: [ 8.00 KB used. Disk Avail: 122.36 GB ]
19:17:16 INFO: File System and OS: [ NV_L4T_FILE_SYSTEM_AND_OS_T194_COMP Install took 4s ]
19:17:16 INFO: File System and OS:
19:17:16 INFO: File System and OS:
19:17:16 SUMMARY: File System and OS: APT system is broken and requires manual fix
19:17:16 SUMMARY: Flash Jetson AGX Xavier 16GB/32GB: Depends on failed component
19:17:16 SUMMARY: Device Mode Host Setup in Flash: Depends on failed component
19:17:16 SUMMARY: Flash Jetson AGX Xavier 16GB/32GB: Depends on failed component

I should have also mentioned that the host is a brand new Ubuntu 18.04 installation and that I can install new packages on the host using 'sudo apt-get install ’ without any complaints from apt-get about unmet dependencies.

Just to keep things easier, remember that you can unselect items you don’t want, and so if you’ve flashed and the unit boots normally, then you can attempt optional package installs without flashing again.

JetPack/SDKM is just a front end to the actual flash and package software, and runs only on an Ubuntu host PC (the architecture is wrong for running on a Jetson).

After the flash you must complete the first boot account setup. Without this the other packages cannot install, at least not on the Jetson side. If you happened to create the first boot account as name “nvidia”, and assuming the network address of your Jetson is 192.168.55.1, then you should be able to succeed at this:

  • ping 192.168.55.1
  • ssh nvidia@192.168.55.1

In cases where you see this sort of message:

…then you can try:

sudo apt update
sudo apt-get fix-broken

Sometimes there can be a missing python dependency on the host PC, and it gets confusing because there was a transition not long ago from “python” by default being a 2.x version, and then becoming a 3.x version, and each has the version in its name, but “python” might be a symbolic link to either the 3.x version or the 2.x version…but only the right version would work. Software which names the version in its command works well, but sometimes programs just name “python” and fail to find the right version.

On the host PC you might try adding this:

sudo apt-get install python2-minimal
sudo apt-get install python3-minimal

There was a time when you would also need to do this on the Ubuntu host PC, but perhaps not now:
sudo apt-get install libgconf-2-4 libcanberra-gtk-module

Thanks for your explanation. I stumbled on this post describing how to do the JetPack installation using an Ubuntu VM:

I didn’t realize that the Ubuntu host wasn’t supposed to be a VM. Here’s how I solved my problem:

  • Installed Ubuntu in a dual-boot configuration on my Windows computer
  • Installed python2.7 on the host
  • Followed your guidance about installing the target OS and doing the Ubuntu setup before installing any target app software

After that SDK Manager worked flawlessly.

1 Like