Hi Nvidia team,
I’m trying to test OTA upgrade from 36.3 to 36.3 . The hardware I use is jetson agx orin P3701-0004 , and the software is downloaded from Sdkmanager.
The reference URL is:
https://docs.nvidia.com/jetson/archives/r36.3/DeveloperGuide/SD/SoftwarePackagesAndTheUpdateMechanism.html?highlight=ota#preparing-for-an-image-based-ota-update
My problem:
After updating the ota payload package, restart and get an error:
L4TLauncher: Attempting Recovery Boot
Android image header not seen
Failed to boot recovery:0 partition
Here is full log:
targetRebootLog.txt (39.6 KB)
Problem reproduction
First, I flash the target machine using flash.sh .
sudo ./flash.sh jetson-agx-orin-devkit internal
Then, I generate the payload using l4t_generate_ota_package
Here is my step to generate OTA payload
export BASE_BSP=/home/hostmachine/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_AGX_ORIN_TARGETS/Linux_for_Tegra/
sudo ./apply_binaries.sh
export TARGET_BSP=/home/hostmachine/nvidia/nvidia_sdk/JetPack_6.0_Linux_JETSON_AGX_ORIN_TARGETS/Linux_for_Tegra/
sudo -E ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh jetson-agx-orin-devkit R36-3
ota_payload_package.tar.gz file size : 2.5G
Here is the log
output.txt (655.8 KB)
Operation on the target machine
ee@ee-desktop:~$ sudo mkdir /ota
ee@ee-desktop:~$ sudo cp ~/sd/home/rootf/ota_payload_package.tar.gz /ota
ee@ee-desktop:~$ sync
ee@ee-desktop:~$ md5sum /ota/ota_payload_package.tar.gz
56f053f49b5160ee6ea6eb7da42d75fa /ota/ota_payload_package.tar.gz
ee@ee-desktop:~$ sudo cp ~/sd/home/rootf/ota_tools_R36.3.0_aarch64.tbz2 /ota
ee@ee-desktop:~$ sync
ee@ee-desktop:~$ ll /ota
total 2588756
drwxr-xr-x 2 root root 4096 Jan 1 18:20 ./
drwxr-xr-x 20 root root 4096 Jan 1 18:16 ../
-rw-r--r-- 1 root root 2650821326 Jan 1 18:18 ota_payload_package.tar.gz
-rw-r--r-- 1 root root 46217 Jan 1 18:20 ota_tools_R36.3.0_aarch64.tbz2
ee@ee-desktop:~$ cd /ota
ee@ee-desktop:/ota$ sudo tar -xjpf ota_tools_R36.3.0_aarch64.tbz2
tar: Linux_for_Tegra/Tegra_Software_License_Agreement-Tegra-Linux.txt: time stamp 2024-04-24 23:27:14.237160436 is 1713931519.444671956 s in the future
tar: Linux_for_Tegra/tools/ota_tools/version_upgrade/ota_multi_board_specs.sh: time stamp 2024-04-24 23:27:14.225159814 is 1713931519.432258086 s in the future
tar: Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_run_tasks.sh: time stamp 2024-04-24 23:27:14.181157527 is 1713931519.388168119 s in the future
tar: Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_common.func: time stamp 2024-04-24 23:27:14.149155865 is 1713931519.356026297 s in the future
tar: Linux_for_Tegra/tools/ota_tools/version_upgrade/ota_backup_files_list.txt: time stamp 2024-04-24 23:27:14.23316023 is 1713931519.439946246 s in the future
tar: Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_common_utils.func: time stamp 2024-04-24 23:27:14.161156488 is 1713931519.36787044 s in the future
tar: Linux_for_Tegra/tools/ota_tools/version_upgrade/ota_validate_params.sh: time stamp 2024-04-24 23:27:14.237160436 is 1713931519.44381058 s in the future
tar: Linux_for_Tegra/tools/ota_tools/version_upgrade/ota_board_specs.conf: time stamp 2024-04-24 23:27:14.23316023 is 1713931519.43973223 s in the future
tar: Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_preserve_data.sh: time stamp 2024-04-24 23:27:14.181157527 is 1713931519.387659639 s in the future
tar: Linux_for_Tegra/tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh: time stamp 2024-04-24 23:27:14.14115545 is 1713931519.346959034 s in the future
tar: Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_decompress_package.sh: time stamp 2024-04-24 23:27:14.157156281 is 1713931519.362732569 s in the future
tar: Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_rootfs_updater.sh: time stamp 2024-04-24 23:27:14.173157112 is 1713931519.378375256 s in the future
tar: Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_log.sh: time stamp 2024-04-24 23:27:14.165156697 is 1713931519.370302009 s in the future
tar: Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_customer.conf: time stamp 2024-04-24 23:27:14.153156072 is 1713931519.358238152 s in the future
tar: Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_update_implement.sh: time stamp 2024-04-24 23:27:14.217159398 is 1713931519.421948454 s in the future
tar: Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_update_alt_part.func: time stamp 2024-04-24 23:27:14.209158983 is 1713931519.413638055 s in the future
tar: Linux_for_Tegra/tools/ota_tools/version_upgrade/Image_based_OTA_Examples.txt: time stamp 2024-04-24 23:27:14.14115545 is 1713931519.345249146 s in the future
tar: Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_update.sh: time stamp 2024-04-24 23:27:14.181157527 is 1713931519.385184439 s in the future
tar: Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_start.sh: time stamp 2024-04-24 23:27:14.197158358 is 1713931519.401081398 s in the future
tar: Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_update_rootfs_in_recovery.sh: time stamp 2024-04-24 23:27:14.189157943 is 1713931519.392948055 s in the future
tar: Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_update_alt_part.sh: time stamp 2024-04-24 23:27:14.221159605 is 1713931519.424883797 s in the future
tar: Linux_for_Tegra/tools/ota_tools/version_upgrade/nv_ota_validate.sh: time stamp 2024-04-24 23:27:14.217159398 is 1713931519.420711654 s in the future
tar: Linux_for_Tegra/tools/ota_tools/version_upgrade: time stamp 2024-04-24 23:27:14.273162308 is 1713931519.476518916 s in the future
tar: Linux_for_Tegra/tools/ota_tools: time stamp 2024-04-24 23:27:14.133155034 is 1713931519.336423354 s in the future
tar: Linux_for_Tegra/tools: time stamp 2024-04-24 23:27:14.133155034 is 1713931519.336386426 s in the future
tar: Linux_for_Tegra: time stamp 2024-04-24 23:27:14.237160436 is 1713931519.440362164 s in the future
ee@ee-desktop:/ota$ cd Linux_for_Tegra/tools/ota_tools/version_upgrade/
ee@ee-desktop:/ota/Linux_for_Tegra/tools/ota_tools/version_upgrade$ ls
Image_based_OTA_Examples.txt nv_ota_update_alt_part.func
l4t_generate_ota_package.sh nv_ota_update_implement.sh
nv_ota_common.func nv_ota_update_rootfs_in_recovery.sh
nv_ota_common_utils.func nv_ota_update.sh
nv_ota_customer.conf nv_ota_validate.sh
nv_ota_decompress_package.sh nv_update_alt_part.sh
nv_ota_log.sh ota_backup_files_list.txt
nv_ota_preserve_data.sh ota_board_specs.conf
nv_ota_rootfs_updater.sh ota_multi_board_specs.sh
nv_ota_run_tasks.sh ota_validate_params.sh
nv_ota_start.sh
a_start.sh /ota/ota_payload_package.tar.gz _tools/version_upgrade$ sudo ./nv_ot
Command: ./nv_ota_start.sh /ota/ota_payload_package.tar.gz
Current rootfs is on /dev/mmcblk0
init_ota_log /ota_log
Creating log dir at /ota_log
Create log file at /ota_log/ota_19700101-182255.log
OTA_LOG_FILE=/ota_log/ota_19700101-182255.log
Extract /ota/ota_payload_package.tar.gz
update_nv_boot_control_in_rootfs /ota_work
3701--0004--1--jetson-agx-orin-devkit-
Info. Active boot storage: mmcblk0
TNSPEC 3701-500-0004-L.0-1-1-jetson-agx-orin-devkit-
COMPATIBLE_SPEC 3701--0004--1--jetson-agx-orin-devkit-
TEGRA_BOOT_STORAGE mmcblk0
TEGRA_CHIPID 0x23
TEGRA_OTA_BOOT_DEVICE /dev/mtdblock0
TEGRA_OTA_GPT_DEVICE /dev/mtdblock0
Info: Write TegraPlatformCompatSpec with 3701--0004--1--jetson-agx-orin-devkit-.
check_prerequisites
decompress_ota_package ota_package.tar /ota_work
decompress_ota_package: start at Thu Jan 1 06:23:23 PM EST 1970
Sha1 checksum for /ota_work/ota_package.tar (574dd086e885e0e2f2a73dfe35777ae9adf59daa) matches
decompress_ota_package: end at Thu Jan 1 06:23:36 PM EST 1970
nv_ota_update_implement.sh
Command: nv_ota_update_implement.sh
check_target_board /ota_work TARGET_BOARD
get_chip_id CHIP_ID
ota_choose_images /ota_work
COMPATIBLE_SPEC=3701--0004--1--jetson-agx-orin-devkit-
TEGRA_CHIPID=0x23
_BOARD_SPEC_NAME=3701--0004-
Copy files from ./images-R36-ToT/3701--0004-/ to ./images-R36-ToT/
is_rootfs_a_b_enabled ROOTFS_AB_ENABLED ROOTFS_CURRENT_SLOT
ROOTFS_AB_ENABLED=0
ROOTFS_CURRENT_SLOT=0
is_rootfs_encryption_enabled ROOTFS_ENC_ENABLED
ROOTFS_ENC_ENABLED=0
get_update_slot UPDATE_SLOT
UPDATE_SLOT=B
get_update_control /ota_work UPDATE_BOOTLOADER UPDATE_ROOTFS
UPDATE_BOOTLOADER=1, UPDATE_ROOTFS=1
check_bsp_version /ota_work BASE_VERSION
User release version in system: 0.0
User release version in OTA package: 0.0
User version is to be upgrade from 0.0 to 0.0
base_version=R36 ota_version=R36
update_misc_partitions /ota_work /ota_work/internal_device/images-R36-ToT
Updating misc partitions without layout change
install_partition_with_alt /ota_work/internal_device/images-R36-ToT recovery
prerequisite_check recovery
No image is specified for partition recovery
Skip updating recovery partition as no valid image is found
install_partition_with_alt /ota_work/internal_device/images-R36-ToT recovery-dtb
prerequisite_check recovery-dtb
No image is specified for partition recovery-dtb
Skip updating recovery-dtb partition as no valid image is found
install_partition_with_alt /ota_work/internal_device/images-R36-ToT esp
prerequisite_check esp
The /ota_work/internal_device/images-R36-ToT/esp.img for partition esp is not found
Skip updating esp partition as no valid image is found
update_rootfs /ota_work
update_rootfs_with_a_b_disabled /ota_work
update_rootfs_in_recovery /ota_work
force_booting_to_recovery
Force booting to recovery by writing \x07\x00\x00\x00\x03\x00\x00\x00 to UEFI variable L4TDefaultBootMode-781e084c-a330-417c-b678-38e696380cb9
dd if=/tmp/var_tmp.bin of=L4TDefaultBootMode-781e084c-a330-417c-b678-38e696380cb9 bs=8
1+0 records in
1+0 records out
8 bytes copied, 0.00235885 s, 3.4 kB/s
Rootfs is to be updated in recovery kernel once device is rebooted.
check_bootloader_version /ota_work
update_bootloader /ota_work
Bootloader on non-current slot(B) is to be updated once device is rebooted
clean_up_ota_files
ee@ee-desktop:/ota/Linux_for_Tegra/tools/ota_tools/version_upgrade$
Then, reboot , the above error will appear.
Did I overlook something, or is there something wrong with the operation? Please help me take a look on it.
Thanks!