Stuck in revovery mode

Hello everyone,

I am using a jetson nano on which I am using a 256 GB SD card. I am to change the boot logo that appears at the boot screen, which I am doing so using the instructions in this thread: Hello! How can I change the Nvidia boot logo to my own? - #27 by hoanganhv1svm
However, whenever I force my Jetson into recovery mode and flash it, the message comes that the BMP change was successful (I am only changing the BMP partition). But my Jetson does not reboot and gets stuck in recovery mode. The only way to get it out of recovery was to flash the entire image altogether and that leads to L4T being installed in a small partition of 16 GB and automatically leaves 240 GB on the SD card vacant. I am not able to overcome this problem. How do I force my Jetson nano out of recovery ?
Also why does flashing the entire thing again force my OS into a tiny partition of 16 GB and not use the whole space ?
Any help is appreciated.

-A_Mannan

Hi,

There are few things to clarify

  1. It is abnormal to see the board get stuck in recovery mode after flashing a single partition. I would suggest you to try few times and see if this error could be reproduced or not.
    Please make sure that the board is really “in recovery mode” when error happens, but not just get stuck in some boot status with no monitor output.

  2. The partition size of sdcard should be configured during the first boot up on GUI. Only emmc module is not able to configure that. So, please tell us why you cannot configure it in the GUI?

Hi,

  1. The error has happened multiple times and even on different boards. This makes me think the problem may lie in the flash script of the host PC.
    Also, the board is really in recovery mode when the error happens. I confirmed this by entering lsusb on the host PC and I saw the following in the output : ID 0955:7f21 Nvidia Corp… Also I am able to re-flash the board which would not have been possible in a non-recovery mode.

  2. The partition size is configured correctly initially (takes the whole 256 GB). It re-configures after a full flash to 16 GB partition. We can re-configure the partition from the GUI but it is a pain to do it every time we flash a board. What do mean about the emmc module here ? What is its purpose ?

-A_Mannan

Hi,

  1. Could you share us the full steps and release version about this error? Also, when “different boards” are reproducing this error. Do you mean the whole devkit (module +carrier) or just replacing the modules?

  2. Never mind. There are two kinds of modules. One is based on development kit which has a sdcard on module. Another one is called production module which only has emmc storage on module. All the custom carrier boards should be used with emmc module.

Hi,

My aim is to change the boot logo. I forcet my devkit to recovery by doing the following:

  1. Jumper the FC REC and GND pins on the dev kit.
  2. Jumper the J48 pin on the kit.
  3. Connecting a 5V power supply adapter to the J25 port.
  4. Remove the jumper from the FC REC pin.

Then I follow the steps in the host PC to change the boot logo as specified in this thread: [Hello! How can I change the Nvidia boot logo to my own? - #27 by hoanganhv1svm].

  1. sudo apt install liblz4-tool
  2. git clone GitHub - VladimirSazonov/jw-boot-logo-for-Jetson-Nano: This is a modified jw-boot-logo for creation bmp.blob for JetsonNano. You must have lz4c installed for use this
  3. cd jw-boot-logo-for-Jetson-Nano
  4. git clone GitHub - nothings/stb: stb single-file public domain libraries for C/C++
  5. g++ -o jw_boot_image main.cpp
  6. ./jw_boot_image [path_to_your_logo]
  7. Make sure there is an output file named “bmp.blob”
  8. Copy “bmp.blob” into [path_to_your_bsp]/Linux_for_Tegra/bootloader/
  9. cd [path_to_your_bsp]/Linux_for_Tegra/
  10. Finish installation by the command: sudo ./flash.sh -k BMP --image bootloader/bmp.blob jetson-nano-qspi-sd mmcblk0p1.
    These steps work and I can see the changed bootscreen logo once I get the Jetson nano out of recovery. But getting it out of recovery is the pain, due to the aforementioned reasons.

-A_Mannan

Why do you have to use someone’s github project?

The bmp blob should be able to generated by following the official readme file.

I don’t know where the official readme file is located. This worked for me so I went with this.

I also posted the path of official readme file just in the link URL you posted.

Thanks for providing the path. I remember trying to follow those steps from the readme but was unsuccessful. This github method worked though.
Let me try and explain the timeline of my problem.

  1. I force my board into recovery.
  2. I perform the steps for logo change and flash it.
  3. It gets stuck in recovery mode now
  4. Only way out (as I found out) was to re-flash the entire image file and then the board gets out of recovery mode.
  5. At this point I can confirm that the boot logo change was successful, but now I realize the partition size got messed up for some reason.
    question : How do I properly get it out of recovery mode without needing to flash the entire image ?

-A_Mannan

Hi,

Let’s clarify it again.

  1. If you just want to leave out of the recovery mode and don’t want us to help check why the BMP flash would cause this error. Then the answer is simple, just remove the power cable, connect it back again and power on the board. This should make the board leave the recovery mode. If it does not, then this board may have problem because the recovery mode is mostly triggered by hardware.

  2. If you want to figure out the cause, please share us the release version you are using. We will check with official tool. Also, you may tell us what kind of error you saw when you use the official tools.

  3. You can also check just one command with default jetpack environment.

sudo ./flash.sh -r -k BMP jetson-nano-qspi-sd mmcblk0p1

Please note that “default jetpack environment” means the bmp.blob is still the nvidia logo one.

If this command can work, then you can try below and see if it can work. Please note that the bmp.blob here is still the nvidia logo one.

sudo ./flash.sh -r -k BMP --image bootloader/bmp.blob jetson-nano-qspi-sd mmcblk0p1.

Hi,

the answer is simple, just remove the power cable, connect it back again and power on the board. This should make the board leave the recovery mode. If it does not, then this board may have problem because the recovery mode is mostly triggered by hardware.

I have tried this step. I removed and re-connected the power several times both with a jumper and the 5V supply as well as a micro usb cable without the jumper, yet no luck. But I wonder whether its a hardware issue because this has happened on two different boards that have otherwise always worked fine up until this point.

My release version is 4.9.140-tegra. Is this what you needed or have I misunderstood ?

I ran the command you suggested and it works, but I haven’t tested it for a default Jetpack environment. The bootloader/bmp.blob is changed. I can replace it with the nvidia logo similar to how I changed it to my custom logo, but I don’t think that means it’s back to “default”. Can you advise how i can reset my host PC Jetpack environment back to default ?
Thank you for your help so far.

-A_Mannan

Hi,

My release version is 4.9.140-tegra.

No, I need to know which jetpack release you are using. For example, jetpack4.4 or jetpack4.3.

I ran the command you suggested and it works, but I haven’t tested it for a default Jetpack environment. The bootloader/bmp.blob is changed. I can replace it with the nvidia logo similar to how I changed it to my custom logo, but I don’t think that means it’s back to “default”. Can you advise how i can reset my host PC Jetpack environment back to default ?

Do you mean command (1) is working while comamnd (2) will cause the board stuck in recovery mode?

  1. sudo ./flash.sh -r -k BMP jetson-nano-qspi-sd mmcblk0p1
  1. sudo ./flash.sh -r -k BMP --image bootloader/bmp.blob jetson-nano-qspi-sd mmcblk0p1.

I am using JetPack-4.4.

Do you mean command (1) is working while command (2) will cause the board stuck in recovery mode?

No, neither command is helping the board out of recovery mode. When I said that “it works”, I mean that command[2] gave an output like this :

*** The [BMP] has been updated successfully. ***

While command[1] gave this output:

*** Error: missing BMP image. Use option --image to specify the image to be flashed.

Again, neither command is enabling the board out of recovery mode.

Ok. Clear to me.

You can try to use sdkmanager to remove the driver package and let it to install them again.

After it is the default one, please try below command again. The bmp blob should be the nv logo one.

  1. sudo ./flash.sh -r -k BMP --image bootloader/bmp.blob jetson-nano-qspi-sd mmcblk0p1.

I have one concern. Will removing the driver package and installing it again via sdkmanager format the sd card and its contents ?

Please ignore my previous comment. Sorry for that.

Changing anything on host will not change anything on your sdcard unless you use the flash.sh script.

When sdkmanager is re-installing, please be careful and not let it flash your board…

Hi,

I made a notable realization that my devkit target is running Jetpack-4.4.1 while my host is running Jetpack-4.4. This is because I flashed the image on the SD card using a separate image file and the fletcher app as mentioned in the guide. This could be the reason for the problem I am having. I am trying to upgrade Jetpack on my host PC to 4.4.1 using sdkmanager, while making sure I do not flash my sd card. I have used the sdkmanger with the options given in the screenshot.

The target boxes are unchecked because I did not want the SD card to be flashed. However, this hasn’t updated Jetpack in my host and the bmp.blob is still in the Jetpack4.4 directory. I don’t know how to update the Jetpack in my host PC. Any help is appreciated.

-A_Mannan

Hi,

It is simple. Just click that option back and do not connect any micro usb cable to your board.
It will upgrade the files on host and stop when it detects there is no usb cable connected.

Hi,

That solved my problem. The mismatch of the two jetpack releases was the issue. Now I am able to flash the BMP partition and change the logo successfully, immediately after which the Jetson reboots out of recovery mode.
Thank you so much for your help. You are amazing.

-A_Mannan

1 Like