Creating a distributional image?

I have a Nvidia Jetson Nano 2gb developer board.
I have downloaded the Nvidia latest image and imaged it appropriately to a 400GB micro SD card.
the image works and I have done all the appropriate software/OS updates.
I have downloaded and installed certain softwares and configure them accordingly and everything works great.
but now I need to create an image of this that I can use on other exact models nano 2gb.
I have look through the forums and see lots of discussion regarding it, but I cant find any definite appropriate / detailed instruction on getting it work.
I have downloaded the and extracted the linux_for_tegra.
I have went into the tools folder and found the “jetson-disk-image-creator.sh” file.
#1 I’m not entirely sure about the syntax, but heres what I used:
sudo ./jetson-disk-image-creator.sh -o my_image_blob.img -b jetson-nano -r 100

#2 I dont know exactly what the revision is (the last digit on the command, in this case 100) I dont have access to physically look at the board, it has been install on a piece of equipment. and I dont have the original box. what command can I type to find my revision? but since its a “2gb” version, I assumed it was 100, being that I see documentation that 200 and 300 are the 4GB model, but I could be wrong.

#3 shouldn’t I be able to tell it to save the .img file to another location, /media/hd01 (example)

first error message at the top, after the command is ran is:
flash.sh: line 586: ./tegracrm: cannot execute binary file: Exec format error (Board ID 3448) version (100)


savad@Nano2GB:~/Downloads/Linux_for_Tegra/tools$ sudo ./jetson-disk-image-creator.sh -o /media/savad/30c93200-9dbc-4f64-9e68-77408bef3632/my_image_blob.img -b jetson-nano -r 100
[sudo] password for savad:


 Jetson Disk Image Creation Tool     

jetson-disk-image-creator.sh - creating signed images
~/Downloads/Linux_for_Tegra ~/Downloads/Linux_for_Tegra/tools
###############################################################################

L4T BSP Information:

R32 , REVISION: 4.2

###############################################################################
/home/savad/Downloads/Linux_for_Tegra/flash.sh: line 586: ./tegrarcm: cannot execute binary file: Exec format error
Board ID(3448) version(100)
copying bctfile(/home/savad/Downloads/Linux_for_Tegra/bootloader/t210ref/BCT/P3448_A00_4GB_Micron_4GB_lpddr4_204Mhz_P987.cfg)… done.
copying bootloader(/home/savad/Downloads/Linux_for_Tegra/bootloader/t210ref/cboot.bin)… done.
copying initrd(/home/savad/Downloads/Linux_for_Tegra/bootloader/l4t_initrd.img)… done.
populating kernel to rootfs… done.
populating initrd to rootfs… done.
populating /home/savad/Downloads/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0000-p3449-0000-a01.dtb to rootfs… done.
Making Boot image… failed.


with media location:

savad@Nano2GB:~/Downloads/Linux_for_Tegra/tools$ sudo ./jetson-disk-image-creator.sh -o my_image_blob.img -b jetson-nano -r 100


 Jetson Disk Image Creation Tool     

jetson-disk-image-creator.sh - creating signed images
~/Downloads/Linux_for_Tegra ~/Downloads/Linux_for_Tegra/tools
###############################################################################

L4T BSP Information:

R32 , REVISION: 4.2

###############################################################################
/home/savad/Downloads/Linux_for_Tegra/flash.sh: line 586: ./tegrarcm: cannot execute binary file: Exec format error
Board ID(3448) version(100)
copying bctfile(/home/savad/Downloads/Linux_for_Tegra/bootloader/t210ref/BCT/P3448_A00_4GB_Micron_4GB_lpddr4_204Mhz_P987.cfg)… done.
copying bootloader(/home/savad/Downloads/Linux_for_Tegra/bootloader/t210ref/cboot.bin)… done.
copying initrd(/home/savad/Downloads/Linux_for_Tegra/bootloader/l4t_initrd.img)… done.
populating kernel to rootfs… done.
populating initrd to rootfs… done.
populating /home/savad/Downloads/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0000-p3449-0000-a01.dtb to rootfs… done.
Making Boot image… failed.

I don’t know about the rest of this, but the exec format error tends to say you are trying to run a program for another architecture. For example, the flash software all runs on a desktop PC Linux using that architecture, and if you try to run any flash software from the Jetson itself (which is not a desktop PC architecture), then you get an exec format error. All flash software should be run from an Ubuntu desktop PC (other Linux flavors/distributions will work on command line, but Ubuntu is needed if you use anything GUI).

hello doityourselfgamer ,

could you please share the Nano device you’re using.
jetson-disk-image-creator it is supported with Jetson Nano for 100 (A01), 200 (A02) and 300 (B00/B01) FABs. please include those revision numbers for the -r options.

yes, I am trying to run the image command on the Jetson-Nano 2gb on the device itself to create an image of that device.
I can’t seem to find those details in the instruction that say, do you run this image creation tool on the device itself that you are trying to make an image of. or do you take the micro SD card out of the nano2gb and connect it to a Linux machine, whether its ARM based or x86 (neither of those a specificed, that I could find)
i just seems that many of the ppl that work for Nvidia know everything about them, but leave out alot of basic information that they intend the end-user to figure out or know how.

it is a Nvidia Jetson Nano 2gb
I cannot see the board itself. It has been installed in something that I cannot access or see. is there a command I can run on the device to tell me its “revision” identification?
I have tried the command with 100, 200 and 300
The box that it came in is gone.
the device is in an industrial environment and works perfectly in what it has been programmed to do. now that I have this $59 device running very expensive robot arm, they would like to test and run it at other facilities. so I just need to be able to create an image of this one, so distribute to other techs to use on other nano 2gb devices.

Won’t work. Needs to be a desktop Linux PC architecture. One can manipulate an SD card from the PC, or else with the SD plugged in to a recovery mode Jetson talking to a PC. In all cases the commands would run on the PC.

Note: There is memory on the Nano itself which is related to boot for the case of an SD card dev kit model. Using flash software with a recovery mode Nano is more likely to succeed than is simply building an SD card. The reason for this is that some SD card content might be tied to different boot content on the module itself. When using flash software both the SD card and module will tend to have correct versions. When using only an SD card success will depend on the module having compatible content for that release version on the SD card. This is via QSPI memory.

Also, non-SD card models have similar differences, but the eMMC would contain that content and not use QSPI for boot content.

1 Like

awesome. I appreciate the information. I’ll try that next and hopefully be successful.

I now have a stand-alone x86 machine with Ubuntu installed.
downloaded the appropriate linux_for_tegra, rootfs and driver packages.

I have taken the micro SD card out of my jetson-nano 2gb and inserted it into my Ubuntu machine and it mounted it at example: /media/user01/jetson-nano

is the command jetson-disk-image-creator.sh going to find that SD card and create an image from it called my_image_blob.img ? how will it know to find that with the command:
“sudo ./jetson-disk-image-creator.sh -o my_image_blob.img -b jetson-nano -r 100”

hello doityourselfgamer,

Jetson disk image creation tool, it’s using the release image on your local host machine and creating a SD-blob.
your actual use-case is duplicate the image on your SD-card, right?

Your saying “Jetson disk image creation tool, it’s using the release image on your local host machine and creating a SD-blob” so whatever I run this script on, its making a image of that running operating system that I’m running the command on? that exactly what someone said you cant do…
" your actual use-case is duplicate the image on your SD-card" sort of. I took the micro SD out of my nano 2gb and made a duplicate, but that duplicate will ONLY work on the nano it came from. I need to put the SD card into a new/different nano or many different nano 2gb models.
I can use Win32diskimager on a Windows 10 machine and it will make an exact duplicate of the SD card into a .img file and I can take that .img file and us balanaEtcher and image it to another micro SD card, but it still will only work on the nano hardware that it came from. I need to take the micro SD card that I downloaded from Nvidia, install software on, and make a duplicate image of it that will work on other nano 2gb.

lets say, I downloaded the official Nvidia image for the nano 2gb.
I spent 2 weeks installing software and configuring, updating, etc.
then I want to take the image I’ve worked on and make a copy for 10 other nano 2gb’s.
it seems simple, but I just cant seem to figure out what I’m missing.
I hope I’m not making this more difficult that it should be, lol.

hello doityourselfgamer,

assume you had Nano-A and Nano-B, you had flashing Nano-A and develop everything on it.
besides duplicate the SD-card image, you’ll still need to flash QSPI for Nano-B.

@JerryChang maybe this is the missing component I need. I have not done this.

how do I run the command on nano B if nano B wont boot with nano A image?

sudo ./flash jetson-nano-qspi-sd ?

Thank you,

hello doityourselfgamer,

this command should works to only flashing QSPI. $ sudo ./flash.sh jetson-nano-qspi mmcblk0p1

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