Cloning Jetson Nano emmc

Hi,

I want to clone my Jetson Nano production module. I followed the steps from Jetson/Clone - eLinux.org.

Command use to create the image:
sudo ./flash.sh -r -k APP -G backup.img jetson-nano-emmc mmcblk0p1

The error I get is the follow:
[ 1.7615 ] 00000004: Failed to get an accessor of secondary boot device

Is it possible to mount the Jetson as storage on the host pc and make then an image?

Thanks
Dieter

Log from flash.sh script:
###############################################################################

L4T BSP Information:

R32 , REVISION: 3.1

###############################################################################

Target Board Information:

Name: jetson-nano-emmc, Board Family: t210ref, SoC: Tegra 210,

OpMode: production, Boot Authentication: ,

###############################################################################
./tegraflash.py --chip 0x21 --applet “/home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/bootloader/nvtboot_recovery.bin” --skipuid --cmd “dump eeprom boardinfo cvm.bin”
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.0015 ] Generating RCM messages
[ 0.0025 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 0 --download rcm /home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/bootloader/nvtboot_recovery.bin 0 0
[ 0.0032 ] RCM 0 is saved as rcm_0.rcm
[ 0.0037 ] RCM 1 is saved as rcm_1.rcm
[ 0.0037 ] List of rcm files are saved in rcm_list.xml
[ 0.0037 ]
[ 0.0037 ] Signing RCM messages
[ 0.0046 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[ 0.0058 ] Assuming zero filled SBK key
[ 0.0109 ]
[ 0.0110 ] Copying signature to RCM mesages
[ 0.0130 ] tegrarcm --chip 0x21 0 --updatesig rcm_list_signed.xml
[ 0.0141 ]
[ 0.0141 ] Boot Rom communication
[ 0.0147 ] tegrarcm --chip 0x21 0 --rcm rcm_list_signed.xml --skipuid
[ 0.0154 ] RCM version 0X210001
[ 0.6067 ] Boot Rom communication completed
[ 1.6141 ]
[ 1.6142 ] dump EEPROM info
[ 1.6182 ] tegrarcm --oem platformdetails eeprom /home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/bootloader/cvm.bin
[ 1.6218 ] Applet version 00.01.0000
[ 2.1884 ] Saved platform info in /home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/bootloader/cvm.bin
[ 2.2653 ]
Board ID(3448) version(400)
copying bctfile(/home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/bootloader/t210ref/BCT/P3448_A00_4GB_Micron_4GB_lpddr4_204Mhz_P987.cfg)… done.
copying bootloader(/home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/bootloader/t210ref/cboot.bin)… done.
copying initrd(/home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/bootloader/l4t_initrd.img)… done.
populating kernel to rootfs… done.
populating initrd to rootfs… done.
populating /home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0002-p3449-0000-b00.dtb to rootfs… done.
Making Boot image… done.
Existing sosfile(/home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/bootloader/nvtboot_recovery.bin) reused.
copying tegraboot(/home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/bootloader/t210ref/nvtboot.bin)… done.
copying cpu_bootloader(/home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/bootloader/t210ref/cboot.bin)… done.
copying bpffile(/home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/bootloader/t210ref/sc7entry-firmware.bin)… done.
Existing badpagefile(/home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/bootloader/badpage.bin) reused.
copying wb0boot(/home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/bootloader/t210ref/warmboot.bin)… done.
Existing tosfile(/home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/bootloader/tos-mon-only.img) reused.
Existing eksfile(/home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/bootloader/eks.img) reused.
copying dtbfile(/home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0002-p3449-0000-b00.dtb)… done.
Warning (reg_format): “reg” property in /i2c@7000c000/temp-sensor@4c has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
Warning (avoid_default_addr_size): Relying on default #address-cells value for /i2c@7000c000/temp-sensor@4c
Warning (avoid_default_addr_size): Relying on default #size-cells value for /i2c@7000c000/temp-sensor@4c
Warning (reg_format): “reg” property in /i2c@7000c000/temp-sensor@4c has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
Warning (avoid_default_addr_size): Relying on default #address-cells value for /i2c@7000c000/temp-sensor@4c
Warning (avoid_default_addr_size): Relying on default #size-cells value for /i2c@7000c000/temp-sensor@4c
Copying nv_boot_control.conf to rootfs
Skip generating system.img
Existing tbcfile(/home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/bootloader/nvtboot_cpu.bin) reused.
copying tbcdtbfile(/home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/kernel/dtb/tegra210-p3448-0002-p3449-0000-b00.dtb)… done.
Warning (reg_format): “reg” property in /i2c@7000c000/temp-sensor@4c has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
Warning (avoid_default_addr_size): Relying on default #address-cells value for /i2c@7000c000/temp-sensor@4c
Warning (avoid_default_addr_size): Relying on default #size-cells value for /i2c@7000c000/temp-sensor@4c
Warning (reg_format): “reg” property in /i2c@7000c000/temp-sensor@4c has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
Warning (avoid_default_addr_size): Relying on default #address-cells value for /i2c@7000c000/temp-sensor@4c
Warning (avoid_default_addr_size): Relying on default #size-cells value for /i2c@7000c000/temp-sensor@4c
copying cfgfile(/home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/bootloader/t210ref/cfg/flash_l4t_t210_emmc_p3448.xml) to flash.xml… done.
copying flasher(/home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/bootloader/t210ref/cboot.bin)… done.
Existing flashapp(/home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/bootloader/tegraflash.py) reused.
*** Reading [APP] and storing to /home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/backup.img ***
./tegraflash.py --bl cboot.bin --bldtb tegra210-p3448-0002-p3449-0000-b00.dtb --chip 0x21 --applet nvtboot_recovery.bin --bct P3448_A00_4GB_Micron_4GB_lpddr4_204Mhz_P987.cfg --cfg flash.xml --odmdata 0x94000 --cmd “read APP /home/dieter/nvidia/nvidia_sdk/JetPack_4.3_Linux_JETSON_NANO/Linux_for_Tegra/backup.img”
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.0054 ] Generating RCM messages
[ 0.0069 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 0 --download rcm nvtboot_recovery.bin 0 0
[ 0.0093 ] RCM 0 is saved as rcm_0.rcm
[ 0.0097 ] RCM 1 is saved as rcm_1.rcm
[ 0.0097 ] List of rcm files are saved in rcm_list.xml
[ 0.0097 ]
[ 0.0097 ] Signing RCM messages
[ 0.0132 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[ 0.0141 ] Assuming zero filled SBK key
[ 0.0181 ]
[ 0.0181 ] Copying signature to RCM mesages
[ 0.0187 ] tegrarcm --chip 0x21 0 --updatesig rcm_list_signed.xml
[ 0.0196 ]
[ 0.0196 ] Boot Rom communication
[ 0.0201 ] tegrarcm --chip 0x21 0 --rcm rcm_list_signed.xml
[ 0.0207 ] BootRom is not running
[ 0.3473 ]
[ 0.3474 ] Parsing partition layout
[ 0.3500 ] tegraparser --pt flash.xml.tmp
[ 0.3538 ]
[ 0.3539 ] Creating list of images to be signed
[ 0.3563 ] tegrahost --chip 0x21 0 --partitionlayout flash.xml.bin --list images_list.xml
[ 0.3702 ]
[ 0.3702 ] Generating signatures
[ 0.3711 ] tegrasign --key None --list images_list.xml --pubkeyhash pub_key.key
[ 0.3718 ] Assuming zero filled SBK key
[ 0.4422 ]
[ 0.4423 ] Send BCT from Host
[ 0.4423 ] Generating br-bct
[ 0.4430 ] tegrabct --bct P3448_A00_4GB_Micron_4GB_lpddr4_204Mhz_P987.cfg --chip 0x21 0
[ 0.4435 ] Copying Sdram info from 0 to 1 set
[ 0.4443 ] Copying Sdram info from 1 to 2 set
[ 0.4443 ] Copying Sdram info from 2 to 3 set
[ 0.4443 ]
[ 0.4443 ] Updating boot device parameters
[ 0.4448 ] tegrabct --bct P3448_A00_4GB_Micron_4GB_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatedevparam flash.xml.bin
[ 0.4454 ] Warning: No sdram params
[ 0.4455 ]
[ 0.4455 ] Updating bl info
[ 0.4460 ] tegrabct --bct P3448_A00_4GB_Micron_4GB_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updateblinfo flash.xml.bin --updatesig images_list_signed.xml
[ 0.4469 ]
[ 0.4469 ] Updating secondary storage information into bct
[ 0.4474 ] tegraparser --pt flash.xml.bin --chip 0x21 0 --updatecustinfo P3448_A00_4GB_Micron_4GB_lpddr4_204Mhz_P987.bct
[ 0.4480 ]
[ 0.4480 ] Updating Odmdata
[ 0.4485 ] tegrabct --bct P3448_A00_4GB_Micron_4GB_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatefields Odmdata =0x94000
[ 0.4490 ] Warning: No sdram params
[ 0.4491 ]
[ 0.4491 ] Get Signed section of bct
[ 0.4497 ] tegrabct --bct P3448_A00_4GB_Micron_4GB_lpddr4_204Mhz_P987.bct --chip 0x21 0 --listbct bct_list.xml
[ 0.4502 ]
[ 0.4503 ] Signing BCT
[ 0.4512 ] tegrasign --key None --list bct_list.xml --pubkeyhash pub_key.key
[ 0.4517 ] Assuming zero filled SBK key
[ 0.4520 ]
[ 0.4520 ] Updating BCT with signature
[ 0.4525 ] tegrabct --bct P3448_A00_4GB_Micron_4GB_lpddr4_204Mhz_P987.bct --chip 0x21 0 --updatesig bct_list_signed.xml
[ 0.4532 ]
[ 0.4532 ] Sending BCTs
[ 0.4538 ] tegrarcm --download bct P3448_A00_4GB_Micron_4GB_lpddr4_204Mhz_P987.bct
[ 0.4543 ] Applet version 00.01.0000
[ 1.0253 ] Sending bct
[ 1.0256 ] […] 100%
[ 1.2029 ]
[ 1.2031 ] Retrieving storage infomation
[ 1.2064 ] tegrarcm --oem platformdetails storage storage_info.bin
[ 1.2093 ] Applet version 00.01.0000
[ 1.7615 ] 00000004: Failed to get an accessor of secondary boot device
[ 1.7621 ]
[ 1.7648 ] tegradevflash --oem platformdetails storage storage_info.bin

hello dieter.vanolmen,

it’s known issue of r32.3.1; please refer to post #21 from Topic 82908, and update nvtboot binary for verification,
thanks

1 Like

Thank you! Just want to mention that linked solution worked for me too.

Question: once we backup nano production emmc, how can we restore in nano development SD card? I tried it and it gets stuck during boot.

hello razvan.grigore,

please note that, while you using below commands to backup an image,
$ sudo ./flash.sh -r -k APP -G backup.img jetson-nano-emmc mmcblk0p1

this only clone APP partition into backup.img, there’re still other necessary partitions you’ll need to boot-up Nano platform.
you may also refer to Nano’s quick start instruction page, please check Write Image to the microSD Card session.
for example, please check the SD-card image from download center, which differ from the cloned image.
thanks