How to generate the OTA update payload package with an customized image cloned from a Jetson device

I have clone a APP image via flash.sh, and need to generate the OTA update payload package with it.

I have study the Development Guide and Image_based_OTA_Examples.txt
I could use below commands to generate the default OTA update payload package,
$ sudo ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh jetson-xavier-nx-devkit-emmc R32-5

but I could not generate the OTA update payload package with my cloned image

Please give me an example for use an customized image cloned from a Jetson device

hello hsu.y.y,

please refer to developer guide for the Over-the-Air Update chapter,
thereā€™s Customization session for using the rootfs updater script (i.e. nv_ota_rootfs_updater.sh) to customize your root file system.
thanks

So we canā€™t generate the OTA update payload package with our cloned image, the update procedure is update to the nvidia default rootfs first, then use nv_ota_rootfs_updater.sh to update customized image, right?

you should assign the path to your cloned image, it should works by specify the rootfs image with the -f option.

unfortunately the result is fail

this is my log for tx2, the same with nx

~/ota_test/Linux_for_Tegra$ sudo ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh -f bootloader/system.img jetson-tx2-devkit R32-5

SKIP_REC_IMG=0 BOARDID=3310 FAB=B01 BOARDSKU= BOARDREV= FUSELEVEL=fuselevel_production /home/yy/ota_test/Linux_for_Tegra/flash.sh --no-flash --sign --no-systemimg jetson-tx2-devkit mmcblk0p1

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

L4T BSP Information:

R32 , REVISION: 6.1

###############################################################################
Board ID(3310) version(B01) sku() revision()
Copy /home/yy/ota_test/Linux_for_Tegra/kernel/dtb/tegra186-quill-p3310-1000-c03-00-base.dtb to /home/yy/ota_test/Linux_for_Tegra/kernel/dtb/tegra186-quill-p3310-1000-c03-00-base.dtb.rec
copying bctfile(/home/yy/ota_test/Linux_for_Tegra/bootloader/t186ref/BCT/P3310_A00_8GB_lpddr4_A02_l4t.cfg)ā€¦ done.
copying misc_config(/home/yy/ota_test/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-misc-si-l4t.cfg)ā€¦ done.
copying pinmux_config(/home/yy/ota_test/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg)ā€¦ done.
copying pmic_config(/home/yy/ota_test/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg)ā€¦ done.
copying pmc_config(/home/yy/ota_test/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg)ā€¦ done.
copying prod_config(/home/yy/ota_test/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg)ā€¦ done.
copying scr_config(/home/yy/ota_test/Linux_for_Tegra/bootloader/t186ref/BCT/minimal_scr.cfg)ā€¦ done.
copying scr_cold_boot_config(/home/yy/ota_test/Linux_for_Tegra/bootloader/t186ref/BCT/mobile_scr.cfg)ā€¦ done.
copying bootrom_config(/home/yy/ota_test/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg)ā€¦ done.
copying dev_params(/home/yy/ota_test/Linux_for_Tegra/bootloader/t186ref/BCT/emmc.cfg)ā€¦ done.
Existing bootloader(/home/yy/ota_test/Linux_for_Tegra/bootloader/nvtboot_cpu.bin) reused.
copying initrd(/home/yy/ota_test/Linux_for_Tegra/bootloader/l4t_initrd.img)ā€¦ done.
Making Boot imageā€¦ done.
/home/yy/ota_test/Linux_for_Tegra/bootloader/tegraflash.py --chip 0x18 --key --cmd sign boot.img kernel
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.0005 ] Generating signature
[ 0.0029 ] tegrasign_v3.py --getmode mode.txt --key
[ 0.0030 ] Assuming zero filled SBK key : not reading
[ 0.0030 ] sign_type : 0
[ 0.0030 ] header_magic: 414e4452
[ 0.0042 ] tegrahost_v2 --chip 0x18 --align 1_boot.img
[ 0.0052 ]
[ 0.0073 ] tegrahost_v2 --chip 0x18 0 --appendsigheader 1_boot.img zerosbk
[ 0.0095 ]
[ 0.0128 ] tegrasign_v3.py --key --list 1_boot_sigheader.img_list.xml --pubkeyhash pub_key.key
[ 0.0129 ] Assuming zero filled SBK key : not reading
[ 0.0315 ] tegrahost_v2 --chip 0x18 0 --updatesigheader 1_boot_sigheader.img.encrypt 1_boot_sigheader.img.hash zerosbk
[ 0.0359 ]
[ 0.0366 ] Signed file: /home/yy/ota_test/Linux_for_Tegra/bootloader/temp_user_dir/boot_sigheader.img.encrypt
l4t_sign_image.sh: Generate header for boot_sigheader.img.encrypt
l4t_sign_image.sh: chip 0x18: Donā€™t need to do anything
l4t_sign_image.sh: Generate 16-byte-size-aligned base file for boot_sigheader.img.encrypt
l4t_sign_image.sh: the signed file is /home/yy/ota_test/Linux_for_Tegra/bootloader/temp_user_dir/boot_sigheader.img.encrypt
done.
Making recovery ramdisk for recovery imageā€¦
Re-generating recovery ramdisk for recovery imageā€¦
~/ota_test/Linux_for_Tegra/bootloader/ramdisk_tmp ~/ota_test/Linux_for_Tegra/bootloader ~/ota_test/Linux_for_Tegra
30412 blocks
_BASE_KERNEL_VERSION=4.9.253-tegra
~/ota_test/Linux_for_Tegra/bootloader/ramdisk_tmp/lib ~/ota_test/Linux_for_Tegra/bootloader/ramdisk_tmp ~/ota_test/Linux_for_Tegra/bootloader ~/ota_test/Linux_for_Tegra
66117 blocks
Making Recovery imageā€¦
copying recdtbfile(/home/yy/ota_test/Linux_for_Tegra/kernel/dtb/tegra186-quill-p3310-1000-c03-00-base.dtb.rec)ā€¦ done.
20+0 records in
20+0 records out
20 bytes copied, 0.000174386 s, 115 kB/s
Existing sosfile(/home/yy/ota_test/Linux_for_Tegra/bootloader/mb1_recovery_prod.bin) reused.
copying tegraboot(/home/yy/ota_test/Linux_for_Tegra/bootloader/t186ref/nvtboot.bin)ā€¦ done.
Existing cpu_bootloader(/home/yy/ota_test/Linux_for_Tegra/bootloader/nvtboot_cpu.bin) reused.
Existing mb2blfile(/home/yy/ota_test/Linux_for_Tegra/bootloader/nvtboot_recovery.bin) reused.
Existing mtspreboot(/home/yy/ota_test/Linux_for_Tegra/bootloader/preboot_d15_prod_cr.bin) reused.
Existing mts(/home/yy/ota_test/Linux_for_Tegra/bootloader/mce_mts_d15_prod_cr.bin) reused.
Existing mb1file(/home/yy/ota_test/Linux_for_Tegra/bootloader/mb1_prod.bin) reused.
Existing bpffile(/home/yy/ota_test/Linux_for_Tegra/bootloader/bpmp.bin) reused.
copying bpfdtbfile(/home/yy/ota_test/Linux_for_Tegra/bootloader/t186ref/tegra186-a02-bpmp-quill-p3310-1000-c04-00-te770d-ucm2.dtb)ā€¦ done.
Existing scefile(/home/yy/ota_test/Linux_for_Tegra/bootloader/camera-rtcpu-sce.img) reused.
Existing spefile(/home/yy/ota_test/Linux_for_Tegra/bootloader/spe.bin) reused.
copying wb0boot(/home/yy/ota_test/Linux_for_Tegra/bootloader/t186ref/warmboot.bin)ā€¦ done.
Existing tosfile(/home/yy/ota_test/Linux_for_Tegra/bootloader/tos-trusty.img) reused.
Existing eksfile(/home/yy/ota_test/Linux_for_Tegra/bootloader/eks.img) reused.
copying dtbfile(/home/yy/ota_test/Linux_for_Tegra/kernel/dtb/tegra186-quill-p3310-1000-c03-00-base.dtb)ā€¦ done.
Copying nv_boot_control.conf to rootfs
/home/yy/ota_test/Linux_for_Tegra/bootloader/tegraflash.py --chip 0x18 --key --cmd sign kernel_tegra186-quill-p3310-1000-c03-00-base.dtb kernel_dtb
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.0006 ] Generating signature
[ 0.0031 ] tegrasign_v3.py --getmode mode.txt --key
[ 0.0032 ] Assuming zero filled SBK key : not reading
[ 0.0032 ] sign_type : 808464433
[ 0.0032 ] header_magic: d00dfeed
[ 0.0054 ] tegrahost_v2 --chip 0x18 --align 1_kernel_tegra186-quill-p3310-1000-c03-00-base.dtb
[ 0.0065 ]
[ 0.0087 ] tegrahost_v2 --chip 0x18 0 --appendsigheader 1_kernel_tegra186-quill-p3310-1000-c03-00-base.dtb zerosbk
[ 0.0106 ]
[ 0.0140 ] tegrasign_v3.py --key --list 1_kernel_tegra186-quill-p3310-1000-c03-00-base_sigheader.dtb_list.xml --pubkeyhash pub_key.key
[ 0.0141 ] Assuming zero filled SBK key : not reading
[ 0.0277 ] tegrahost_v2 --chip 0x18 0 --updatesigheader 1_kernel_tegra186-quill-p3310-1000-c03-00-base_sigheader.dtb.encrypt 1_kernel_tegra186-quill-p3310-1000-c03-00-base_sigheader.dtb.hash zerosbk
[ 0.0297 ]
[ 0.0304 ] Signed file: /home/yy/ota_test/Linux_for_Tegra/bootloader/temp_user_dir/kernel_tegra186-quill-p3310-1000-c03-00-base_sigheader.dtb.encrypt
l4t_sign_image.sh: Generate header for kernel_tegra186-quill-p3310-1000-c03-00-base_sigheader.dtb.encrypt
l4t_sign_image.sh: chip 0x18: Donā€™t need to do anything
l4t_sign_image.sh: Generate 16-byte-size-aligned base file for kernel_tegra186-quill-p3310-1000-c03-00-base_sigheader.dtb.encrypt
l4t_sign_image.sh: the signed file is /home/yy/ota_test/Linux_for_Tegra/bootloader/temp_user_dir/kernel_tegra186-quill-p3310-1000-c03-00-base_sigheader.dtb.encrypt
done.
Skip generating system.img
Existing tbcfile(/home/yy/ota_test/Linux_for_Tegra/bootloader/cboot.bin) reused.
copying tbcdtbfile(/home/yy/ota_test/Linux_for_Tegra/kernel/dtb/tegra186-quill-p3310-1000-c03-00-base.dtb)ā€¦ done.
copying cfgfile(/home/yy/ota_test/Linux_for_Tegra/bootloader/t186ref/cfg/flash_l4t_t186.xml) to flash.xmlā€¦ done.
Existing flasher(/home/yy/ota_test/Linux_for_Tegra/bootloader/nvtboot_recovery_cpu.bin) reused.
Existing flashapp(/home/yy/ota_test/Linux_for_Tegra/bootloader/tegraflash.py) reused.
./tegraflash.py --bl nvtboot_recovery_cpu.bin --sdram_config P3310_A00_8GB_lpddr4_A02_l4t.cfg --odmdata 0x1090000 --applet mb1_recovery_prod.bin --cmd ā€œsignā€ --cfg flash.xml --chip 0x18 --misc_config tegra186-mb1-bct-misc-si-l4t.cfg --pinmux_config tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg --pmic_config tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg --pmc_config tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg --prod_config tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg --scr_config minimal_scr.cfg --scr_cold_boot_config mobile_scr.cfg --br_cmd_config tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg --dev_params emmc.cfg --bins ā€œmb2_bootloader nvtboot_recovery.bin; mts_preboot preboot_d15_prod_cr.bin; mts_bootpack mce_mts_d15_prod_cr.bin; bpmp_fw bpmp.bin; bpmp_fw_dtb tegra186-a02-bpmp-quill-p3310-1000-c04-00-te770d-ucm2.dtb; tlk tos-trusty.img; eks eks.img; bootloader_dtb tegra186-quill-p3310-1000-c03-00-base.dtbā€
saving flash command in /home/yy/ota_test/Linux_for_Tegra/bootloader/flashcmd.txt
saving Windows flash command to /home/yy/ota_test/Linux_for_Tegra/bootloader/flash_win.bat
*** Sign and generate flashing ready partition imagesā€¦ ***
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.0062 ] Using default ramcode: 0
[ 0.0062 ] Disable BPMP dtb trim, using default dtb
[ 0.0062 ]
[ 0.0087 ] tegrasign_v3.py --getmode mode.txt --key None
[ 0.0088 ] Assuming zero filled SBK key
[ 0.0157 ] Generating RCM messages
[ 0.0180 ] tegrarcm_v2 --listrcm rcm_list.xml --chip 0x18 0 --download rcm mb1_recovery_prod.bin 0 0
[ 0.0190 ] RCM 0 is saved as rcm_0.rcm
[ 0.0195 ] RCM 1 is saved as rcm_1.rcm
[ 0.0195 ] List of rcm files are saved in rcm_list.xml
[ 0.0195 ]
[ 0.0196 ] Signing RCM messages
[ 0.0221 ] tegrasign_v3.py --key None --list rcm_list.xml --pubkeyhash pub_key.key
[ 0.0222 ] Assuming zero filled SBK key
[ 0.0322 ] Copying signature to RCM mesages
[ 0.0346 ] tegrarcm_v2 --chip 0x18 0 --updatesig rcm_list_signed.xml
[ 0.0368 ]
[ 0.0368 ] Parsing partition layout
[ 0.0390 ] tegraparser_v2 --pt flash.xml.tmp
[ 0.0407 ]
[ 0.0408 ] Creating list of images to be signed
[ 0.0434 ] tegrahost_v2 --chip 0x18 0 --partitionlayout flash.xml.bin --list images_list.xml zerosbk
[ 0.1638 ]
[ 0.1639 ] Generating signatures
[ 0.1667 ] tegrasign_v3.py --key None --list images_list.xml --pubkeyhash pub_key.key
[ 0.1668 ] Assuming zero filled SBK key
[ 1.6278 ] Generating br-bct
[ 1.6292 ] Updating dev and MSS params in BR BCT
[ 1.6294 ] tegrabct_v2 --dev_param emmc.cfg --sdram P3310_A00_8GB_lpddr4_A02_l4t.cfg --brbct br_bct.cfg --chip 0x18 0
[ 1.6580 ]
[ 1.6581 ] Updating bl info
[ 1.6605 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x18 0 --updateblinfo flash.xml.bin --updatesig images_list_signed.xml
[ 2.4856 ]
[ 2.4857 ] Updating smd info
[ 2.4881 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x18 --updatesmdinfo flash.xml.bin
[ 2.4895 ]
[ 2.4896 ] Updating Odmdata
[ 2.4918 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x18 0 --updatefields Odmdata =0x1090000
[ 2.4933 ]
[ 2.4933 ] Get Signed section of bct
[ 2.4955 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x18 0 --listbct bct_list.xml
[ 2.4967 ]
[ 2.4997 ] tegrasign_v3.py --key None --list bct_list.xml --pubkeyhash pub_key.key
[ 2.5015 ] Assuming zero filled SBK key
[ 2.5292 ]
[ 2.5292 ] Updating BCT with signature
[ 2.5317 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x18 0 --updatesig bct_list_signed.xml
[ 2.5333 ]
[ 2.5334 ] Generating coldboot mb1-bct
[ 2.5360 ] tegrabct_v2 --chip 0x18 0 --mb1bct mb1_cold_boot_bct.cfg --sdram P3310_A00_8GB_lpddr4_A02_l4t.cfg --misc tegra186-mb1-bct-misc-si-l4t.cfg --scr mobile_scr.cfg --pinmux tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg --pmc tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg --pmic tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg --brcommand tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg --prod tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg
[ 2.5373 ] MB1-BCT version: 0xf
[ 2.5376 ] Packing sdram param for instance[0]
[ 2.5633 ] Packing sdram param for instance[1]
[ 2.5637 ] Packing sdram param for instance[2]
[ 2.5640 ] Packing sdram param for instance[3]

[ 2.5644 ] Parsing config file :tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg
[ 2.5650 ] Appending platform config data of size :- 3032

[ 2.5655 ] Parsing config file :mobile_scr.cfg
[ 2.5658 ] Appending platform config data of size :- 12240
[ 2.5658 ]
[ 2.5658 ] Parsing config file :tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg
[ 2.5658 ] Appending platform config data of size :- 24
[ 2.5659 ]
[ 2.5659 ] Parsing config file :tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg
[ 2.5659 ] Appending platform config data of size :- 672
[ 2.5659 ]
[ 2.5659 ] Parsing config file :tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg
[ 2.5659 ] Appending platform config data of size :- 64
[ 2.5659 ]
[ 2.5659 ] Parsing config file :tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg
[ 2.5659 ] Appending platform config data of size :- 1628
[ 2.5659 ]
[ 2.5660 ] Updating mb1-bct with firmware information
[ 2.5682 ] tegrabct_v2 --chip 0x18 --mb1bct mb1_cold_boot_bct_MB1.bct --updatefwinfo flash.xml.bin
[ 2.5692 ] MB1-BCT version: 0xf
[ 2.5698 ]
[ 2.5698 ] Updating mb1-bct with storage information
[ 2.5721 ] tegrabct_v2 --chip 0x18 --mb1bct mb1_cold_boot_bct_MB1.bct --updatestorageinfo flash.xml.bin
[ 2.5731 ] MB1-BCT version: 0xf
[ 2.5742 ]
[ 2.5756 ] tegrahost_v2 --chip 0x18 --align mb1_cold_boot_bct_MB1.bct
[ 2.5772 ]
[ 2.5795 ] tegrahost_v2 --chip 0x18 0 --appendsigheader mb1_cold_boot_bct_MB1.bct zerosbk
[ 2.5808 ]
[ 2.5837 ] tegrasign_v3.py --key None --list mb1_cold_boot_bct_MB1_sigheader.bct_list.xml --pubkeyhash pub_key.key
[ 2.5839 ] Assuming zero filled SBK key
[ 2.5918 ] tegrahost_v2 --chip 0x18 0 --updatesigheader mb1_cold_boot_bct_MB1_sigheader.bct.encrypt mb1_cold_boot_bct_MB1_sigheader.bct.hash zerosbk
[ 2.5932 ]
[ 2.5934 ] Generating recovery mb1-bct
[ 2.5957 ] tegrabct_v2 --chip 0x18 0 --mb1bct mb1_bct.cfg --sdram P3310_A00_8GB_lpddr4_A02_l4t.cfg --misc tegra186-mb1-bct-misc-si-l4t.cfg --scr minimal_scr.cfg --pinmux tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg --pmc tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg --pmic tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg --brcommand tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg --prod tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg
[ 2.5969 ] MB1-BCT version: 0xf
[ 2.5973 ] Packing sdram param for instance[0]
[ 2.6244 ] Packing sdram param for instance[1]
[ 2.6248 ] Packing sdram param for instance[2]
[ 2.6251 ] Packing sdram param for instance[3]

[ 2.6255 ] Parsing config file :tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg
[ 2.6261 ] Appending platform config data of size :- 3032

[ 2.6266 ] Parsing config file :minimal_scr.cfg
[ 2.6269 ] Appending platform config data of size :- 12240
[ 2.6269 ]
[ 2.6269 ] Parsing config file :tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg
[ 2.6269 ] Appending platform config data of size :- 24
[ 2.6269 ]
[ 2.6269 ] Parsing config file :tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg
[ 2.6270 ] Appending platform config data of size :- 672
[ 2.6270 ]
[ 2.6270 ] Parsing config file :tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg
[ 2.6270 ] Appending platform config data of size :- 64
[ 2.6270 ]
[ 2.6270 ] Parsing config file :tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg
[ 2.6270 ] Appending platform config data of size :- 1628
[ 2.6270 ]
[ 2.6271 ] Updating mb1-bct with firmware information
[ 2.6295 ] tegrabct_v2 --chip 0x18 --mb1bct mb1_bct_MB1.bct --updatefwinfo flash.xml.bin
[ 2.6306 ] MB1-BCT version: 0xf
[ 2.6312 ]
[ 2.6312 ] Updating mb1-bct with storage information
[ 2.6336 ] tegrabct_v2 --chip 0x18 --mb1bct mb1_bct_MB1.bct --updatestorageinfo flash.xml.bin
[ 2.6347 ] MB1-BCT version: 0xf
[ 2.6353 ]
[ 2.6377 ] tegrahost_v2 --chip 0x18 --align mb1_bct_MB1.bct
[ 2.6394 ]
[ 2.6418 ] tegrahost_v2 --chip 0x18 0 --appendsigheader mb1_bct_MB1.bct zerosbk
[ 2.6431 ]
[ 2.6459 ] tegrasign_v3.py --key None --list mb1_bct_MB1_sigheader.bct_list.xml --pubkeyhash pub_key.key
[ 2.6461 ] Assuming zero filled SBK key
[ 2.6524 ] tegrahost_v2 --chip 0x18 0 --updatesigheader mb1_bct_MB1_sigheader.bct.encrypt mb1_bct_MB1_sigheader.bct.hash zerosbk
[ 2.6537 ]
[ 2.6538 ] Copying signatures
[ 2.6569 ] tegrahost_v2 --chip 0x18 0 --partitionlayout flash.xml.bin --updatesig images_list_signed.xml
[ 3.5658 ]
[ 3.5685 ] tegraparser_v2 --generategpt --pt flash.xml.bin
[ 3.5703 ]
[ 3.5736 ] tegrahost_v2 --chip 0x18 --align nvtboot_recovery.bin
[ 3.5747 ]
[ 3.5770 ] tegrahost_v2 --chip 0x18 0 --appendsigheader nvtboot_recovery.bin zerosbk
[ 3.5791 ]
[ 3.5836 ] tegrasign_v3.py --key None --list nvtboot_recovery_sigheader.bin_list.xml --pubkeyhash pub_key.key
[ 3.5838 ] Assuming zero filled SBK key
[ 3.5923 ] tegrahost_v2 --chip 0x18 0 --updatesigheader nvtboot_recovery_sigheader.bin.encrypt nvtboot_recovery_sigheader.bin.hash zerosbk
[ 3.5943 ]
[ 3.5972 ] tegrahost_v2 --chip 0x18 --align preboot_d15_prod_cr.bin
[ 3.5983 ]
[ 3.6007 ] tegrahost_v2 --chip 0x18 0 --appendsigheader preboot_d15_prod_cr.bin zerosbk
[ 3.6022 ]
[ 3.6061 ] tegrasign_v3.py --key None --list preboot_d15_prod_cr_sigheader.bin_list.xml --pubkeyhash pub_key.key
[ 3.6063 ] Assuming zero filled SBK key
[ 3.6142 ] tegrahost_v2 --chip 0x18 0 --updatesigheader preboot_d15_prod_cr_sigheader.bin.encrypt preboot_d15_prod_cr_sigheader.bin.hash zerosbk
[ 3.6156 ]
[ 3.6181 ] tegrahost_v2 --chip 0x18 --align mce_mts_d15_prod_cr.bin
[ 3.6193 ]
[ 3.6217 ] tegrahost_v2 --chip 0x18 0 --appendsigheader mce_mts_d15_prod_cr.bin zerosbk
[ 3.6296 ]
[ 3.6328 ] tegrasign_v3.py --key None --list mce_mts_d15_prod_cr_sigheader.bin_list.xml --pubkeyhash pub_key.key
[ 3.6329 ] Assuming zero filled SBK key
[ 3.6816 ] tegrahost_v2 --chip 0x18 0 --updatesigheader mce_mts_d15_prod_cr_sigheader.bin.encrypt mce_mts_d15_prod_cr_sigheader.bin.hash zerosbk
[ 3.6869 ]
[ 3.6896 ] tegrahost_v2 --chip 0x18 --align bpmp.bin
[ 3.6907 ]
[ 3.6930 ] tegrahost_v2 --chip 0x18 0 --appendsigheader bpmp.bin zerosbk
[ 3.6952 ]
[ 3.6982 ] tegrasign_v3.py --key None --list bpmp_sigheader.bin_list.xml --pubkeyhash pub_key.key
[ 3.6983 ] Assuming zero filled SBK key
[ 3.7162 ] tegrahost_v2 --chip 0x18 0 --updatesigheader bpmp_sigheader.bin.encrypt bpmp_sigheader.bin.hash zerosbk
[ 3.7453 ]
[ 3.7479 ] tegrahost_v2 --chip 0x18 --align tegra186-a02-bpmp-quill-p3310-1000-c04-00-te770d-ucm2.dtb
[ 3.7489 ]
[ 3.7511 ] tegrahost_v2 --chip 0x18 0 --appendsigheader tegra186-a02-bpmp-quill-p3310-1000-c04-00-te770d-ucm2.dtb zerosbk
[ 3.7533 ]
[ 3.7562 ] tegrasign_v3.py --key None --list tegra186-a02-bpmp-quill-p3310-1000-c04-00-te770d-ucm2_sigheader.dtb_list.xml --pubkeyhash pub_key.key
[ 3.7563 ] Assuming zero filled SBK key
[ 3.7750 ] tegrahost_v2 --chip 0x18 0 --updatesigheader tegra186-a02-bpmp-quill-p3310-1000-c04-00-te770d-ucm2_sigheader.dtb.encrypt tegra186-a02-bpmp-quill-p3310-1000-c04-00-te770d-ucm2_sigheader.dtb.hash zerosbk
[ 3.8525 ]
[ 3.8565 ] tegrahost_v2 --chip 0x18 --align tos-trusty.img
[ 3.8579 ]
[ 3.8600 ] tegrahost_v2 --chip 0x18 0 --appendsigheader tos-trusty.img zerosbk
[ 3.8620 ]
[ 3.8650 ] tegrasign_v3.py --key None --list tos-trusty_sigheader.img_list.xml --pubkeyhash pub_key.key
[ 3.8651 ] Assuming zero filled SBK key
[ 3.8801 ] tegrahost_v2 --chip 0x18 0 --updatesigheader tos-trusty_sigheader.img.encrypt tos-trusty_sigheader.img.hash zerosbk
[ 3.8820 ]
[ 3.8846 ] tegrahost_v2 --chip 0x18 --align eks.img
[ 3.8857 ]
[ 3.8885 ] tegrahost_v2 --chip 0x18 0 --appendsigheader eks.img zerosbk
[ 3.8905 ]
[ 3.8935 ] tegrasign_v3.py --key None --list eks_sigheader.img_list.xml --pubkeyhash pub_key.key
[ 3.8936 ] Assuming zero filled SBK key
[ 3.8995 ] tegrahost_v2 --chip 0x18 0 --updatesigheader eks_sigheader.img.encrypt eks_sigheader.img.hash zerosbk
[ 3.9008 ]
[ 3.9033 ] tegrahost_v2 --chip 0x18 --align tegra186-quill-p3310-1000-c03-00-base.dtb
[ 3.9051 ]
[ 3.9078 ] tegrahost_v2 --chip 0x18 0 --appendsigheader tegra186-quill-p3310-1000-c03-00-base.dtb zerosbk
[ 3.9099 ]
[ 3.9131 ] tegrasign_v3.py --key None --list tegra186-quill-p3310-1000-c03-00-base_sigheader.dtb_list.xml --pubkeyhash pub_key.key
[ 3.9133 ] Assuming zero filled SBK key
[ 3.9336 ] tegrahost_v2 --chip 0x18 0 --updatesigheader tegra186-quill-p3310-1000-c03-00-base_sigheader.dtb.encrypt tegra186-quill-p3310-1000-c03-00-base_sigheader.dtb.hash zerosbk
[ 3.9362 ]
[ 3.9399 ] tegrahost_v2 --chip 0x18 --align nvtboot_recovery_cpu.bin
[ 3.9413 ]
[ 3.9437 ] tegrahost_v2 --chip 0x18 0 --appendsigheader nvtboot_recovery_cpu.bin zerosbk
[ 3.9453 ]
[ 3.9483 ] tegrasign_v3.py --key None --list nvtboot_recovery_cpu_sigheader.bin_list.xml --pubkeyhash pub_key.key
[ 3.9484 ] Assuming zero filled SBK key
[ 3.9591 ] tegrahost_v2 --chip 0x18 0 --updatesigheader nvtboot_recovery_cpu_sigheader.bin.encrypt nvtboot_recovery_cpu_sigheader.bin.hash zerosbk
[ 3.9609 ]
[ 3.9611 ] Copying signed file in /home/yy/ota_test/Linux_for_Tegra/bootloader/signed
[ 4.0253 ] tegraparser_v2 --pt flash.xml.bin --generateflashindex /home/yy/ota_test/Linux_for_Tegra/bootloader/signed/flash.xml.tmp flash.idx
[ 4.7685 ]
signed_dir=/home/yy/ota_test/Linux_for_Tegra/R32x_R32-ToT_OTA/images-R32-ToT/3310-B01ā€“

SUCCESS: generate binaries for OTA ā€œboardid=3310;fab=B01;boardsku=;boardrev=;fuselevel_s=1;chiprev=0;board=jetson-tx2-devkit;rootdev=mmcblk0p1;signed_img_dir=images-R32-ToTā€

NTFS signature is missing.
Failed to mount ā€˜/dev/loop22ā€™: Invalid argument
The device ā€˜/dev/loop22ā€™ doesnā€™t seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
Failed to mount /home/yy/ota_test/Linux_for_Tegra/bootloader/system.img.raw

you should execute the commands as below to specifies the script to be used to update the rootfs partition.
i.e. $ sudo ./l4t_generate_ota_package.sh [-o <rootfs_updater>] [-f <rootfs_image>] ...

I tried but the result is not good.
the example file ā€œImage_based_OTA_Examples.txtā€ is not include update the rootfs partition.
i.e. $ sudo ./l4t_generate_ota_package.sh [-o <rootfs_updater>] [-f <rootfs_image>] ...

Please give me an example directly if you can.

hello hsu.y.y,

please try this.
$ sudo ./l4t_generate_ota_package.sh -f user_rootfs.img -o user_rootfs_updater.sh <board_name> <bsp_version>
note,
you should assign user_rootfs.img and user_rootfs_updater.sh.
that means you have to write the user_rootfs_updater.sh and generate user_rootfs.img by yourself.

please refer to nv_ota_rootfs_updater.sh when you would like to write your own rootfs updaters.
by default, the rootfs updater nv_ota_rootfs_updater.sh which included in the BSP package is used and the default rootfs image is a tar.gz archive generated from the system.img.raw.

besides,
you donā€™t need to use the -f and the -o options if you just make some customization in rootfs directory and do not care about how the rootfs directory is packed on the host and how it is unpacked into the rootfs partition on the device,
thanks

1 Like