Jetson Nano - Cannot flash - Cannot open usb device.Check if device is in recovery

I am trying to flash Jetpack 4.6.1 on Jetson Nano but I cannot seem to get it working.

When I insert etched SD Card into Nano upon powering up I get this:

[0000.163] [L4T TegraBoot] (version 00.00.2018.01-l4t-e82258de)
[0000.168] Processing in cold boot mode Bootloader 2
[0000.173] A02 Bootrom Patch rev = 1023
[0000.177] Power-up reason: pmc por
[0000.180] No Battery Present
[0000.182] pmic max77620 reset reason
[0000.186] pmic max77620 NVERC : 0x40
[0000.189] RamCode = 0
[0000.191] Platform has DDR4 type RAM
[0000.195] max77620 disabling SD1 Remote Sense
[0000.199] Setting DDR voltage to 1125mv
[0000.203] Serial Number of Pmic Max77663: 0x308e8
[0000.210] Entering ramdump check
[0000.213] Get RamDumpCarveOut = 0x0
[0000.217] RamDumpCarveOut=0x0,  RamDumperFlag=0xe59ff3f8
[0000.222] Last reboot was clean, booting normally!
[0000.226] Sdram initialization is successful
[0000.231] SecureOs Carveout Base=0x00000000ff800000 Size=0x00800000
[0000.237] Lp0 Carveout Base=0x00000000ff780000 Size=0x00001000
[0000.242] BpmpFw Carveout Base=0x00000000ff700000 Size=0x00080000
[0000.248] GSC1 Carveout Base=0x00000000ff600000 Size=0x00100000
[0000.254] GSC2 Carveout Base=0x00000000ff500000 Size=0x00100000
[0000.260] GSC4 Carveout Base=0x00000000ff400000 Size=0x00100000
[0000.266] GSC5 Carveout Base=0x00000000ff300000 Size=0x00100000
[0000.272] GSC3 Carveout Base=0x000000017f300000 Size=0x00d00000
[0000.288] RamDump Carveout Base=0x00000000ff280000 Size=0x00080000
[0000.294] Platform-DebugCarveout: 0
[0000.297] Nck Carveout Base=0x00000000ff080000 Size=0x00200000
[0000.303] Non secure mode, and RB not enabled.
[0000.307] BoardID = 3448, SKU = 0x0
[0000.311] QSPI-ONLY: SkipQspiOnlyFlag = 0
[0000.314] Nano-SD: checking PT table on QSPI ...
[0000.319] Read PT from (2:0)
[0000.334] Using BFS PT to query partitions
[0000.338] PT: Partition TBC NOT found !
[0000.342] Warning: Find Partition via PT Failed
[0000.346] BoardID = 3448, SKU = 0x0
[0000.349] QSPI-ONLY: SkipQspiOnlyFlag = 0
[0000.353] Nano-SD: checking PT table on QSPI ...
[0000.358] PT: Partition TBC NOT found !
[0000.361] Warning: Find Partition via PT Failed
[0000.366] Error is 1

It is as if there is no SD card inserted in.

When I try with sdkmanager run on Ubuntu 18.04 in WSL2 (Windows 10) I get below errors:

[   0.0122 ] Generating RCM messages
[   0.0145 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 0 --download rcm /home/fiart/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/bootloader/nvtboot_recovery.bin 0 0
[   0.0155 ] RCM 0 is saved as rcm_0.rcm
[   0.0162 ] RCM 1 is saved as rcm_1.rcm
[   0.0162 ] List of rcm files are saved in rcm_list.xml
[   0.0162 ]
[   0.0163 ] Signing RCM messages
[   0.0184 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[   0.0195 ] Assuming zero filled SBK key
[   0.0266 ]
[   0.0266 ] Copying signature to RCM mesages
[   0.0289 ] tegrarcm --chip 0x21 0 --updatesig rcm_list_signed.xml
[   0.0306 ]
[   0.0307 ] Boot Rom communication
[   0.0328 ] tegrarcm --chip 0x21 0 --rcm rcm_list_signed.xml --skipuid
[   0.0338 ] RCM version 0X210001
[   0.0878 ] Boot Rom communication completed
[   1.1022 ]
[   1.1023 ] dump EEPROM info
[   1.1052 ] tegrarcm --oem platformdetails eeprom /home/fiart/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/bootloader/cvm.bin
[   1.1064 ] Applet version 00.01.0000
[   1.1205 ] Saved platform info in /home/fiart/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/bootloader/cvm.bin
[   1.2127 ]
[   1.2151 ] tegrarcm --reboot recovery
[   1.2162 ] Applet version 00.01.0000
[   1.2379 ]
Board ID(3448) version(200)
copying bctfile(/home/fiart/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/bootloader/t210ref/BCT/P3448_A00_lpddr4_204Mhz_P987.cfg)... done.
copying bootloader(/home/fiart/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/bootloader/t210ref/cboot.bin)... done.
copying initrd(/home/fiart/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/bootloader/l4t_initrd.img)... done.
Making Boot image... done.
Existing sosfile(/home/fiart/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/bootloader/nvtboot_recovery.bin) reused.
copying tegraboot(/home/fiart/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/bootloader/t210ref/nvtboot.bin)... done.
copying cpu_bootloader(/home/fiart/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/bootloader/t210ref/cboot.bin)... done.
copying bpffile(/home/fiart/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/bootloader/t210ref/sc7entry-firmware.bin)... done.
copying wb0boot(/home/fiart/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/bootloader/t210ref/warmboot.bin)... done.
Existing tosfile(/home/fiart/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/bootloader/tos-mon-only.img) reused.
Existing eksfile(/home/fiart/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/bootloader/eks.img) reused.
copying dtbfile(/home/fiart/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0000-p3449-0000-a02.dtb)... done.
Copying nv_boot_control.conf to rootfs
        populating kernel to rootfs... done.
        populating initrd to rootfs... done.
        populating kernel_tegra210-p3448-0000-p3449-0000-a02.dtb to rootfs... done.
Making system.img...
        populating rootfs from /home/fiart/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/rootfs ...         populating /boot/extlinux/extlinux.conf ... done.
        Sync'ing system.img ... done.
        Converting RAW image to Sparse image... done.
system.img built successfully.
Existing tbcfile(/home/fiart/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/bootloader/nvtboot_cpu.bin) reused.
copying tbcdtbfile(/home/fiart/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0000-p3449-0000-a02.dtb)... done.
copying cfgfile(/home/fiart/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/bootloader/t210ref/cfg/flash_l4t_t210_max-spi_sd_p3448.xml) to flash.xml... done.
copying flasher(/home/fiart/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/bootloader/t210ref/cboot.bin)... done.
Existing flashapp(/home/fiart/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/bootloader/tegraflash.py) reused.
./tegraflash.py --bl cboot.bin --bct  P3448_A00_lpddr4_204Mhz_P987.cfg --odmdata 0xa4000 --bldtb kernel_tegra210-p3448-0000-p3449-0000-a02.dtb --applet nvtboot_recovery.bin  --cmd "flash; reboot"  --cfg flash.xml --chip 0x21    --bins "EBT cboot.bin; DTB tegra210-p3448-0000-p3449-0000-a02.dtb"
saving flash command in /home/fiart/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/bootloader/flashcmd.txt
saving Windows flash command to /home/fiart/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/bootloader/flash_win.bat
assign_value: crc-flash.xml.bin 1 65520 1
printf '\x1' | dd of=crc-flash.xml.bin bs=1 seek=65520 count=1 conv=notrunc
1+0 records in
1+0 records out
1 byte copied, 6.49e-05 s, 15.4 kB/s
assign_value: crc-flash.xml.bin 0 65521 1
printf '\x0' | dd of=crc-flash.xml.bin bs=1 seek=65521 count=1 conv=notrunc
1+0 records in
1+0 records out
1 byte copied, 7.79e-05 s, 12.8 kB/s
assign_string: crc-flash.xml.bin PTHD 65528 4
echo PTHD | dd of=crc-flash.xml.bin bs=1 seek=65528 count=4 conv=notrunc
4+0 records in
4+0 records out
4 bytes copied, 7.3e-05 s, 54.8 kB/s
*** Flashing target device started. ***
Welcome to Tegra Flash
version 1.0.0
Type ? or help for help and q or quit to exit
Use ! to execute system commands

[   0.0030 ] tegrasign --getmode mode.txt --key None
[   0.0042 ] Assuming zero filled SBK key
[   0.0046 ]
[   0.0048 ] Generating RCM messages
[   0.0078 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 0 --download rcm nvtboot_recovery.bin 0 0
[   0.0091 ] RCM 0 is saved as rcm_0.rcm
[   0.0098 ] RCM 1 is saved as rcm_1.rcm
[   0.0099 ] List of rcm files are saved in rcm_list.xml
[   0.0099 ]
[   0.0100 ] Signing RCM messages
[   0.0123 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[   0.0135 ] Assuming zero filled SBK key
[   0.0200 ]
[   0.0201 ] Copying signature to RCM mesages
[   0.0226 ] tegrarcm --chip 0x21 0 --updatesig rcm_list_signed.xml
[   0.0243 ]
[   0.0244 ] Parsing partition layout
[   0.0269 ] tegraparser --pt flash.xml.tmp
[   0.0284 ]
[   0.0285 ] Using default ramcode: 0
[   0.0286 ] Disable BPMP dtb trim, using default dtb
[   0.0286 ]
[   0.0286 ] Creating list of images to be signed
[   0.0313 ] tegrahost --chip 0x21 0 --partitionlayout flash.xml.bin --list images_list.xml
[   0.0400 ]
[   0.0401 ] Generating signatures
[   0.0426 ] tegrasign --key None --list images_list.xml --pubkeyhash pub_key.key
[   0.0440 ] Assuming zero filled SBK key
[   0.1115 ]
[   0.1116 ] Generating br-bct
[   0.1142 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.cfg --chip 0x21 0
[   0.1205 ]
[   0.1206 ] Updating boot device parameters
[   0.1230 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatedevparam flash.xml.bin
[   0.1240 ] Warning: No sdram params
[   0.1243 ]
[   0.1243 ] Updating bl info
[   0.1266 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updateblinfo flash.xml.bin --updatesig images_list_signed.xml
[   0.1291 ]
[   0.1292 ] Updating secondary storage information into bct
[   0.1322 ] tegraparser --pt flash.xml.bin --chip 0x21 0 --updatecustinfo P3448_A00_lpddr4_204Mhz_P987.bct
[   0.1345 ]
[   0.1346 ] Updating Odmdata
[   0.1372 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatefields Odmdata =0xa4000
[   0.1383 ] Warning: No sdram params
[   0.1386 ]
[   0.1386 ] Get Signed section of bct
[   0.1410 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --listbct bct_list.xml
[   0.1424 ]
[   0.1425 ] Signing BCT
[   0.1474 ] tegrasign --key None --list bct_list.xml --pubkeyhash pub_key.key
[   0.1495 ] Assuming zero filled SBK key
[   0.1504 ]
[   0.1504 ] Updating BCT with signature
[   0.1529 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatesig bct_list_signed.xml
[   0.1545 ]
[   0.1546 ] Copying signatures
[   0.1569 ] tegrahost --chip 0x21 0 --partitionlayout flash.xml.bin --updatesig images_list_signed.xml
[   0.1678 ]
[   0.1679 ] Updating BFS information on BCT
[   0.1704 ] tegrabct --bct P3448_A00_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatebfsinfo flash.xml.bin
[   0.1717 ]
[   0.1718 ] Boot Rom communication
[   0.1738 ] tegrarcm --chip 0x21 0 --rcm rcm_list_signed.xml
[   0.1748 ] BootRom is not running
[   0.1752 ]
[   0.1753 ] Sending BCTs
[   0.1775 ] tegrarcm --download bct P3448_A00_lpddr4_204Mhz_P987.bct
[   0.1785 ] Cannot open usb device.Check if device is in recovery
[   0.1787 ]
Error: Return value 8
Command tegrarcm --download bct P3448_A00_lpddr4_204Mhz_P987.bct
Failed flashing t210ref.

I am pretty sure device is in recovery mode because after “lsusb” command I see below USB position:

Bus 001 Device 010: ID 0955:7f21 NVidia Corp.

I tried both GUI flash and “sudo ./flash.sh jetson-nano-qspi-sd mmcblk0p1”, but to no avail.

SDKM_logs_JetPack_4.6.3_Linux_for_Jetson_Nano_modules_2023-05-16_20-24-12.zip (130.1 KB)

I attach one of the error logs.

Is it possible that SD card reader on Nano is broken?
I got A02 developer kit 4GB, which I bought around 2-3 years ago.

Any help will be greatly appreciated.

Most VMs have issues with USB since during flash USB disconnects and then reconnects (you’d have to configure the VM properly to reconnect). WSL2 though also lacks loopback features (I’m told it is possible to add loopback, but this might require a high level of expertise).

You do need to use JetPack/SDK Manager to flash the Jetson itself to get the module’s QSPI memory to a compatible release versus the SD card, but you won’t have much luck with this using WSL2. A native Ubuntu 18.04 host PC is recommended (you could for example dual boot).

After a week of futile attempts to install Ubuntu in dual boot on my Windows 10 PC I got no results.

Is it possible to use sdkmanager in Ubuntu that runs under “try Ubuntu before installing” option via a USB storage?
The USB storage has 64 GB, on which Ubuntu ISO file is etched.

If the USB storage is formatted as ext4, then it might be possible. 64 GB might be cutting it close, and I’m not sure if the amount of RAM matters, but it might work. So here are my concerns (none of which would stop you from trying; it might waste time, but it wouldn’t cause any harm):

  • I don’t know if the “try it” option has loopback enabled, but I think it probably does (if it doesn’t, then it will fail to create the rootfs image, but will otherwise seem to work).
  • If this runs in RAM, then that means installation of the SDK Manager might also be in RAM (it’d be in RAM pretending to be an actual disk). There is likely swap space, but it is possible that it’d slow down a lot (and live distributions already load very slowly), and eventually crash and burn (or else just be impossibly slow; you can find out).

Incidentally, I use KUbuntu (just a KDE GUI instead of Gnome). The installer DVD (or thumb drive) is a bit more flexible, and might work better with actual install. You might want to describe what fails when trying to install dual boot. FYI though, 64 GB of disk space is not enough since the operating system itself will take up space (you need about 50 GB left after the operating system is installed, and after any swap file is added). A live distribution probably doesn’t have that issue since the disk is mostly all available (though swap might be used on it). You could try KUbuntu 18.04.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.