Can not boot up Nano 2G. Don't want to use SDK manager

Hi,

I need to setup a class of using 20 pcs of nano. (I bought them from Sparkfun, Just arrived last week.)
I flashed a SD card but the nano can not boot up…
I have tried 4.51, 4.6 and 4.61 images. Do I need to flash the SD card with older image?
My plan is to build my own SD card img and dd to the rest of 19 SD card.
It took too much time to use SDK manager. :<
Which SD image do I need??

Thanks,

Hi,

I found many people have the same problem as mine.
Can’t boot my Jetson Nano 2GB - stuck on frozen NVIDIA logo - Jetson & Embedded Systems / Jetson Nano - NVIDIA Developer Forums
But my problem is that I don’t have a machine with Ubuntu 18.04. Which SD image version is compatible with the existing QSPI memory? Does the board serial number help?
Thx

If you have Windows PC, you can use VMware Workstation 16 Player and Ubuntu 18.04 for SDK Manager.

  1. Flash OS without cuda etc. packages. (for bootrom update)
  2. Make JetPack 4.6.1 sdcard. (JetPack 4.6/4.6.1/4.6.2 are the same bootrom version)
  3. Setup OS.

1: This is required for all Jetson.
2 and 3: If you have sdcard image which OS settings already done, you can skip.

This is unofficial way. But it has been possible since my first use of Jetson.
But you cannot use USB device mode mode which provides an IP address(192.168.55.1). Therefore, it is necessary to perform the initial OS setup using hdmi-monitor, keyboard, and mouse.

So, what is the correct way to clone 20 pcs of SD card? Thx

If you don’t need to update the QSPI on the Jetson itself (the boot content), then SD card clone and copy are trivial (assuming destination is as large as source). On the Linux PC I will assume the SD card shows up as “/dev/mmcblk0”. One can create a file on the PC the size of the SD card (thus it is a large file, check space available prior to starting):
sudo dd if=/dev/mmcblk0 of=sd_card_clone.img bs=1M
(the “bs=1M” is just a performance boost and can be experimented with or left out, but 1M is usually a nice choice)

If an unmounted SD card is at “/dev/mmcblk0” (auto mount will likely mount that SD card if it is formatted, so you’d need to umount it in that case), then you can turn it into a clone:

sudo dd if=sd_card_clone.img of=/dev/mmcblk0 bs=1M
sudo sync /dev/mmcblk0

(the sync just makes it force writes which were buffered; if the new SD card auto mounts, then you must still umount it prior to unplugging it)

That is what I was using.
However, dd did not really do the verification.
the dd terminates if it sees error (maybe the problem of the SD card, or the USB dongle) dd does not do any re-try.

And if I use the option of --noerror, it will skip any error. I just cloned a SD card and saw one of the folders is not accessible, it is kind of scary.

I follow this link
How to Clone SD Card - Jetson Nano and Jetson Xavier NX - YouTube

If there is a dd error, then there is a serious issue. It would not be unusual for this to be a bad SD card. In some less common cases it is a USB error.

I only use the --noerror (and some related options) when doing data recovery on failing disks. You should never use these options in normal conditions (as you mention, this keeps going, but it does so by failing blocks of memory copy).

When using the dd command, make sure you have enough free space on your Ubuntu PC (or VMware Ubuntu).
For example, if you are creating a 32GB sdcard image, you should have at least 60GB of free space on your Ubuntu PC. If the free space is around 40GB, it will easily fail.

The image file created by the dd command depends on the capacity of the sdcard. However, you can reduce the image file size by removing the extra space. In this case, it is necessary to configure the system to automatically expand according to the sdcard capacity at the first startup.
The following link explains about it.

I found out after I have dd the SD card, the new nano 2G still cannot boot up. (It works in other old 2G nano board)
Now, I have to use Nvidia SDK to flash each board which take more than 1 hour each… Can I do it in parallel? (I clone 4 sd card using dd at the same time.)
Is there a faster way to flash the QSPI memory only? Thx
Note: I suspect the new 2G nano does not have QSPI memory installed…
Note: the new nano 2G board has the fan 4 pins installed.

You don’t need software installation such as CUDA. (Because you will use downloaded sdcard image.)
Updating the bootrom is the first step in the procedure of writing the Jetson OS.
It will take 15 minutes.

HI,

I stay in the office for the whole day on Sunday and I can just clone 5 SD card so far… :<
If Nvidia can provide a SD card with the QSPI image, I can first clone this image, get the card to install the QSPI memory. And then, I can put in my own SD card. It will be much faster. Thx

There is a board config which flashes only qspi image in your Linux_for_Tegra. This folder will be installed by sdkmanager. So if you already flashed your board, ~/nvidia will have this folder…

Also, just in case you don’t know. Every official sdcard image has QSPI image… but each release may have different effect. It is a complicated one. If you want to know, then I can tell more… but if you just want to flash QSPI, then use flash.sh under your L4T folder to flash… it will be done in few min.

Dear Wayne,

I will try it tomorrow as I don’t have my computer now. Thx
I assume just type ,/flashh.sh under the L4T folder?

Here what I did before

  1. I use balenaEtcher to flash 4.51,4.6 and 4.61 to a new 64 SD card before, but the board can not boot up… (But you said the SD card image has the QSPI config…, I can try again if you need)
  2. That’s why I use SDK manager to flash the 2G board with a new 64 card. Then, I use this card and build my own application.
  3. Then, I dd this SD card to an img file and clone 19 SD cards out.
  4. But when I put the SD card to a new 2G Nano board, it can not boot up…
  5. So, for each new 2G board, I use SDK manager to flash the board with a 64 card. Then, replace the SD with my own card…

May I know the proper way to clone the SD card? Can I add the QSPI config in my image?
Thx

Hi,

  1. No, not just “flash.sh”. If you are totally new to this tool… I would suggest to read the document first. This is the real basic tool that we are using…
    Jetson Linux

  2. Sdcard image has QSPI image. But this does not indicate you won’t hit boot error…
    When you hit boot issue, replacing sdcard won’t help. You can only reflash the board with either sdkmanager or flash.sh. They are doing the same thing. But flash.sh can select to flash QSPI only.

  3. The reason that sdcard has QSPI image is just for updating QSPI image version “after you boot into kernel”. Your current situation is you totally cannot boot into kernel. So QSPI image on sdcard won’t have any effect…

Mmm…
I will try this tomorrow then
1.
sudo ./flash.sh -k DTB jetson-nano-2gb-devkit mmcblk0p1
Based on this, Jetson Linux
2.
I will try a new SD card with 4.6 image on a new nano 2G board
3.
How to add back the QSPI config to my own SD card? So that when I clone the card, it will have the QSPI config inside?

For your information, I will have a class of 20 and I need to find a way to clone 20 SD cards with my image. What is the easiest way? I can re-build my image if it’s required.

Thx

Forget about the document. Just use command

sudo ./flash p3542-0000+p3448-0003-qspi mmcblk0p1 and this will flash QSPI only of nano-2gb.

jetson-nano-2gb-devkit is still QSPI+ sdcard.

There is a sdcard image create tool Linux_for_Tegra/tools/jetson-disk-image-creator.sh. This one could create a sdcard image.

I will try a new SD card with 4.6 image on a new nano 2G board

What do you want to try here? As I said, your problem is not replacing sdcard or sdcard image version. If you don’t reflash the QSPI, then replacing 100 times sdcard /sdcard image may not work…

Hi,

I thought you said that particular 2G board has problem. Or all new 2G board does not have the QSPI install? I am confused.

Before I create my own sdcard image, can I check if it has the QSPI config inside? If not, can I add the QSPI config before running the /jetson-disk-image-creator.sh? Or the /jetson-disk-image-creator.sh will add the QSPI config automatically? If this method works, I can just dd this image to several SD card and I don’t need to use SDK manager anymore. :>

Thx

No, I mean only one module has QSPI issue. And you can only resolve that by using sdkmanager or flash.sh.
That issue cannot be resolved by changing sdcard image or sdcard. → This is my point.

By default, every Nano 2GB has QSPI image in it.

It is funny then. I cloned several SD card with my own image. (The original image is based on the 4.61 use SDK manager) If I just put it in a new 2G board, it cannot boot up. (I have tried several SD cards on several 2G boards)
I have to use the SDK manager to flash the 2G board with a SD card, after rebooting the 2G board, replace the card with the card with my own image.

Note: I remembered that last year, when I clone the SD card for the 4G board, your engineer said the QSPI config will be erased in SD card to save space. I wonder if it happened in 2G also…
Last year, I just flashed a SD card with 4.5, put it in a new 4G board, and rebooted. Then replaced the SD card with my image. But for 2G, this method does not work…