"Cannot find matching device in recovery mode" error when flashing AGX Xavier

I cannot get my AGX Xavier devkit to flash. When I try to flash Jetpack 4.6.1 using sdkmanager from Ubuntu 18.0.4 laptop (not virtual machine), the flash fails with error “Can not find matching device in recovery mode.” I am positive that the device is in recovery mode (I’ve tried holding the recovery button and pressing the reboot button as well as holding the recovery button and powering the device on before flashing). The laptop is plugged into power as well (not battery power). I have also tried flashing Jetpack 5.0.1 from a separate Ubuntu 20.0.4 laptop with the same result. I also ran flash.sh, which seems to execute successfully, but the Xavier is not visible from my host machine after it is flashed, and when I connect to a monitor, I do get display output, but the USB ports appear to be non functional.

This solution from another thread actually fixed my problem: Xavier does not flash with host pc - #11 by JerryChang

could you please have alternative way to flash the board, the same OS image should store as below.
/home/adstec/nvidia/nvidia_sdk/JetPack_4.2.3_Linux_GA_P2888/Linux_for_Tegra/

please generate system image locally without flashing the board in the beginning.

$ sudo ./flash.sh --no-flash jetson-xavier mmcblk0p1

once complete, put your device enter forced-recovery mode and adding -r options to reuse the image to flash the board.

$ sudo ./flash.sh -r jetson-xavier mmcblk0p1

Scratch that. The above solution worked for me for installing Jetpack 5.0.1, but the original error persisted when I tried again with 4.6.1

Hi,

Just want to clarify that, if you can flash it with flash.sh without problem, then it means the flash is successfully.

If your problem is after flash, you get nothing, then it is some other problem. Not related to recovery mode and flash.

To tell the error from that case, after you flash it, dump the uart log. And see if it got stuck in the boot process.

I followed the instructions on your link, but I ran into some problems. When I boot the Xavier in recovery mode while connected to the host pc via serial port, I get the following output from dmesg --follow:

[ 8521.025262] usb 2-2: USB disconnect, device number 17
[ 8522.542958] usb 2-2: new high-speed USB device number 18 using xhci_hcd
[ 8522.691790] usb 2-2: New USB device found, idVendor=0955, idProduct=7019, bcdDevice= 1.02
[ 8522.691796] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 8522.691799] usb 2-2: Product: APX
[ 8522.691802] usb 2-2: Manufacturer: NVIDIA Corp.

And when I boot it normally (not recovery mode), I get no output at all from dmesg --follow. It doesn’t seem like I am able to get the serial log. I also tried this:

nick@ThinkPad-X250:~$ dmesg | grep --color 'tty'
[    0.221267] printk: console [tty0] enabled

Also here’s my flash log if this helps: https://pastebin.com/bzYh8wxQ

Sorry, wrong link.

AGX Xavier does not need usb-ttl cable. Just micro usb cable.

BTW, I am not sure if you understand what I mean. To dump this log, you don’t need to set “recovery mode” again.

If you are sure previously sdkmanager/flash.sh told you the flash is successfully, then only boot up and dump the log to me.

Yeah, I’m using the AGX Xavier Devkit which uses USB-C.

Sorry if I wasn’t clear with my reply, I tried booting normally (without recovery mode), and no new devices showed on my host pc. I also tried booting in recovery mode as well, and the host pc recognized the device, but no devices were assigned to /dev/ttyACM<X> or /dev/ttyUSB<X> in either case.

There is a micro-OTG USB port on the side of the dev kit which has the 40-pin header. Use a micro-B USB cable on that if it is the serial port you are looking for. USB-C is for flash, micro-B is for serial port.

1 Like

Hmm that’s strange. Either I’m blind or I don’t have a micro usb on my board. I only see USB_C, HDMI, USB A x2, Ethernet, and power (barrel jack)


I suspect if this is really devkit…
Last time another user got one board from somewhere else which said it is devkit… but turns out it is not…

You can check the developer kit user guide to check the interfaces.

https://developer.nvidia.com/embedded/dlc/jetson-agx-xavier-developer-kit-user-guide

“File not found” for that pdf. I’ll dig it up on my own though and let you know.
Yeah it might not be a devkit. That would certainly explain a few things.

Edit: I don’t think my device is a devkit. The interfaces don’t match what is shown in the user guide. Anything I can do now?

You better clarifying with the vendor you got this for what board is in use…

Generally, a non-devkit means custom board. And custom board requires customize BSP software to boot up. This is not what I can directly answer.

1 Like

Ok, thanks for your help. The weird thing is I was able to successfully flash it with Jetpack 5.0, though. Would that be possible with a non-devkit board?

There is no definite answer to this. We don’t make any guarantee of any custom board behavior on the sdkmanager.

BTW, your issue seems not flash. But fails to boot.

1 Like

On the AGX, if you look at the side with the 40-pin connector, the small port to the left is a micro-OTG USB port (it accepts either type-A micro-USB or type-B micro-USB, but the ID pin only works in device mode so a type-B shows up as a device but a type-A is non-functional). Use the micro-B cable on the micro-OTG if you are looking for serial console (for a UART log).

The problem is I don’t think my device is actually a DevKit. The port to the left of the 40-pin is not a micro usb port, but rather USB C. I have attached a picture of the Xavier a few posts up if you want to take a look.

If that is a USB-C, and not a micro-OTG, then it is probably an Orin. The Orin looks a bit different though, and yours looks like the AGX Xavier. The micro-OTG is shaped like the USB-C of the Orin, but slightly different size. If the carrier board is for the Orin, but with Xavier on it, then I could see how things might not be behaved as expected. Have you tried using a micro-B USB cable on that connector?

The cable I have been using is a USB-A to USB-C adapter that came provided with a separate AGX Orin Devkit. The cable works to flash the Xavier, but not to read the serial log. I don’t think a micro-B would fit that connector. It is definitely a USB-C connector since it fits my USB-C cable.

That sounds like a hardware manufacturing issue. My AGX Xavier dev kit is micro-OTC there. So far as I know all of the Xavier AGX dev kits have micro-OTG there. Maybe someone from NVIDIA can comment: If you look at the top picture in his earlier post (adding a link for convenience), there is a small USB connector on the left. Is this always a micro-OTG on Xavier AGX? He apparently has a USB-C there, and I have not seen that before.

1 Like