How to Put NVIDIA Jetson NANO in Force Recovery Mode?

I have done:
1.Jumper the Force Recovery pins (3 and 4) on J40 button header
2.Jumper the J48 Power Select Header pins and connect a power supply to J25 power jack

and run in host linux sudo ./flash.sh jetson-nano-qspi-sd mmcblk0p1

the result is :
###############################################################################

L4T BSP Information:

R32 , REVISION: 2.0

###############################################################################
Error: probing the target board failed.
Make sure the target board is connected through
USB port and is in recovery mode.

what’s the matter?

Hi,

Please follow below order.

  1. Jumper the J48 power select pin first and plug the power jack
  2. Jumper the recovery pin
  3. Jumper the reset pin
  4. Remove the jumper of reset pin
  5. Remove the jumper of recovery pin.

You should be able to see nvidia device with “lsusb” command on your host.

Oh boy. The other dog is right. I’ve been using the nano for months now and haven’t bothered connecting it to my workstation. It’s simply not necessary (or in my case, desirable). I’m not an “engineer” I guess, so that might help.

Simply flash the unzipped image to the sd card with rufus or dd or etcher or gnome-disks or any number of other tools that write raw images to block devices. Then put the sd card in and boot it up. Done. Nvidia provides good instructions for this.

Trying to determine if 4chan denizen or not :/ There is nothign stopping you, though personally I’d rather chew broken glass than play even 5 minutes of that game. To each his own, I guess.

edit: I hope the mods can overlook the post below. Mr Thoma apologized profusely to me in PM and I accepted.

If someone else has the misfortune of reading this thread, a few points of information:

  1. The term recovery mode on the Jetson is the traditional term used in embedded systems. It refers to preparing the machine to accept firmware/software sent from an outside source. This is a special case; in this mode the machine is running a conceptually very simple program (the operating system is not loaded) which just writes bits to secondary storage (typically eMMC or SD card, though some embedded systems have lower level firmware areas that can be accessed). This is process is referred to as flashing. Usually there is some type of switch, jumper, or power up process on an embedded device to facilitate this change in mode. These bits comprise and configure the complete system environment, disk partitions, boot loaders, libraries, device trees, rootfs, and so on
  2. The Raspberry Pi, though it uses the same 'recovery mode' nomenclature, is actually more akin to a process that a traditional desktop (like Windows) would call a 'recovery disk'. The Raspberry Pi SD card must already be prepared (typically flashed from a host computer) Early on in the boot process on the RPi, the user can direct the machine to a special 'recovery menu' by hitting the space key. This is reminiscent of dropping into the BIOS configuration of a PC though, unlike a PC, there is no special firmware on the RPi that contains that type of information. Note here that the RPi has actually completed an abbreviated boot, and is actually running existing code from the SD card. It is then possible to flash a different/more complete version of the operating system on the SD card. The recovery menu is quite useful on the RPi, there are lots of fun things to do configuration wise.
  3. The labels for the pins are silkscreened on the back of the Jetson Nano board. The pins are also defined in the documentation. In order to make the process better for the rest of us (over 100K developers), it might be useful to suggest how this information might be presented, or made more accessible.
  4. As noted previously in the thread, the vast majority of users simply use (and should use) a pre-built SD card image. Recovery mode is usually only used by folks who are doing something more hardcore, building systems from scratch. A user flashes a SD card from a host for use, or uses recovery mode to create/build a system on a SD card on the Nano. Not both, as either process will just overwrite the other.
  5. One of the missing steps in the initial answer is that the Jetson should be plugged into the host via a USB cable to the host and micro-USB connector on the Jetson. This is assumed, but could be confusing if you are trying to do it by rote.
  6. If you need further clarification of an answer on the forum, please ask follow up questions. Sometimes the answers are terse (a simple do this, do that). If the answer doesn't meet your needs, it is difficult for the person who originally answered the question to know without follow up. Remember that English may not be the native language of the person asking or answering the question. While it's easy to read something 'between the lines' intent wise, I've found that the community is genuinely trying to help.
4 Likes

Thank you all.
My order is ok
@WayneWWW’order is ok too.
the mather is my usb cable

Also shared an alternative way if you want to use usb port as power supply.

  1. Assuming starting with no power no jumper connected
  2. Connect jumper to recovery pin
  3. Plug in cable from host to usb port of Nano
1 Like

Hi WayneWWW,

I have been struggling a lot too trying to put the Jetson Nano in Force Recovery mode for flashing using the flash.sh

Can you please provide a consolidated list of steps to be performed and the sequence in which they should be performed?

Please include even basic steps like whether the memory card should be inserted, if so, when should the memory card be inserted etc.

Even though I am not, please consider me to be an absolute layman who just got a brand Jetson Nano in the mail.

ritvik.ranadive

If you just received it in the mail, you download the SD card image from https://developer.nvidia.com/jetson-nano-sd-card-image-r3221
Then you flash that on to a microSD card.
Then you stick the microSD card in to your Jetson Nano, plug in power (USB or barrel) and turn it on.

You now have a working Jetson Nano.

Just make sure you put the jumper correct pin [5 6] following this video (at 1:30, just to show the pin) https://devtalk.nvidia.com/default/topic/1049782/jetson-nano/jetson-nano-not-booting/3, I did it wrong once for ping [3 4] from top to bottom.

Hello,

I’m Jacopo and I’m using Jetson Nano for Master Thesis project.

I need PWMs, so I’m following the procedure from: https://developer.download.nvidia.com/assets/embedded/secure/jetson/Nano/docs/customizing_the_jetson_nano_40-pin_expansion_header_v1.2.pdf?XMfFtQlLalRfTz8DQ399W3OQ6FhMOSrjB3L4Bn-xIUcijf5ImTDam_9zZR-1Ic-m94KwsVR01vr0V1toxiSwj0sJAFgrms8VhaEx66puG4HWNIgsazAc1ZC_NQhAvvX_xSHK9mnXjIJClEmAP7YajLCS43YXcsINNbkwMsp9i4i9xmYvCELTWLYj7XsYK-sc1ObbH7w4JKEsfGZZXXplzH4_nw

and I have to flash the Jetson now:
“Use your Linux host to flash the updated U-Boot bootloader and device tree image to
Jetson Nano. Remember that Jetson Nano must first be placed in Force Recovery mode
$ cd Linux_for_Tegra/
$ sudo ./flash.sh jetson-nano-qspi-sd mmcblk0p1”

So I’m trying to follow here-explained instructions:

  1. Jumper the J48 power select pin first and plug the power jack
  2. Jumper the recovery pin
  3. Jumper the reset pin
  4. Remove the jumper of reset pin
  5. Remove the jumper of recovery pin.
    and the Jetson is connected to Linux host (Raspberry Pi) by USB cable, but Jetson is not detected by lsusb and I don’t know why.

Could you help me?

Thank you

Jacopo

Hi @Jacopo,

I follow this [url]https://github.com/rt-net/JetsonNano_DT_SPI[/url] to enable SPI with Force Recovery mode. From my experience, I did not see lsusb on my Linux host terminal, or somewhere else neither. But I can tell that my SPI works since my device works after flash. I recommend to use a PC or laptop with Ubuntu 18.04 to flash it successfully (I will do this to avoid some issues that I don’t know). The image that I have on my jetson the DLI version which also come with L4T R32.1.

Thanh

Thank you @32nguyen,

but I think my problem is a little different because I have to modify pinmux configuration using NVIDIA instruments (excel file ecc ecc). I could take your suggestion if I found official or unofficial script to enable PWM.

I think my problem could be connected to following topic [url]https://devtalk.nvidia.com/default/topic/1063105/can-t-get-jetson-nano-to-boot-with-custom-pinmux-configuration-per-nvidia-instructions/#[/url], which is without solution yet.

Hope NVIDIA will fix it quickly.

Looking for advices and updates

Regards

Jacopo

Hi,
I saw steps for putting nvidia jetson nano in force/recovery mode. At the third step which you suggested, it is written that jumper the reset pin. Does “reset pin” refer to “pmic_sys_rst pin” of the j40 header?
Thanks in advance.

1 Like

Guys, I’ve managed to put my Nano into recovery and make it visible from host Ubuntu machine.

Here’s the manual:

Put the Jetson device into recovery mode, then enter the following commands to generate the rootfs without flashing the device:

$ sudo BOOTDEV=sda1 ./flash.sh --no-flash sda1

$ sudo mkdir tmp_system

$ sudo mount bootloader/system.img.raw ./tmp_system

$ sudo rsync -axHAWX --numeric-ids --info=progress2 --exclude=/proc ./tmp_system /mnt

Where sda1 is the device name that the Jetson device will assign to APP.

Here are my questions:

  1. In order to do step 1 do I have to somehow perform it from the name of my Jetson or host Linux machine? If it’s Jetson - how do I enter it while it’s in recovery and connected via USB?
  2. Where is flash.sh? Do I have to make it? WHat’s the content of it?
  3. Do I really need to name the partition APP or it can have any legit name?

No worries, I’ve figured it all out, but seriously, guys - you should level up your manuals

5 Likes

Hi alexanderre,

Can you please share steps you followed to flash OS from USB. I am unable to follow nvidia docs

1 Like