1.当我使用ota_tools_R35.5.0_aarch64.tbz2制作ota_payload_package.tar.gz。
使用的命令是:
export BASE_BSP=/media/ljy/OTA/R35.2.1/Linux_for_Tegra/
export TARGET_BSP=/media/ljy/OTA/R35.5/Linux_for_Tegra/
sudo -E ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh jetson-agx-orin-devkit R35-2

2.我使用ota_tools_R35.5.0_aarch64.tbz2和ota_payload_package.tar.gz在我的R35.2.1设备里面升级时遇到报错。

Failed to get current slot
Failed to run “get_update_slot UPDATE_SLOT”
之后OTA停止。

3.下面是我的报错的具体日志和照片。


error.log (2.4 KB)

hello jingyi.Li,

just double check…
did you enable Rootfs-A/B? may I also know your steps to create an OTA payload?

please see-also developer guide for the steps.
for instance, Updating Jetson Linux with Image-Based Over-the-Air Update.

我的构建步骤
1.我下载了ota_tools_R35.5.0_aarch64.tbz2
2.设置export BASE_BSP=/home/OTA/R35.2.1/Linux_for_Tegra
3.设置export TARGET_BSP=/home/OTA/R35.5.0/Linux_for_Tegra
4.使用R35.2.1的system.img.raw替换/home/OTA/R35.2.1/Linux_for_Tegra/rootfs
5.使用R35.5.0的system.img.raw替换/home/OTA/R35.5.0/Linux_for_Tegra/rootfs
6.sudo -E ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh jetson-agx-orin-devkit R35-2
7.使用生成的 /home/OTA/R35.5.0/Linux_for_Tegra/bootloader/ jetson-agx-orin-devkit/ota_payload_package.tar.gz在我的jeston orin R35.2.1中使用命令OTA升级。
sudo ./nv_ota_start.sh /mnt/ota_payload_package.tar.gz

请问我该怎么启用Rootfs-A/B?

hello jingyi.Li,

please give it a try to install efibootmgr, it’s OTA depended package.
for instance,
$ sudo apt update
$ sudo apt install efibootmgr nvme-cli

您指的是 sudo apt install efibootmgr nvme-cli 是在我的/home/OTA/R35.5.0/Linux_for_Tegra/rootfs的终端里执行吗?

还是在我的准备升级的R35.2.1设备里面安装 efibootmgr nvme-cli

我在我的R35.2.1设备中执行了 sudo apt install efibootmgr nvme-cli
再次进行OTA升级命令:sudo ./nv_ota_start.sh /mnt/ota_payload_package.tar.gz
依然报错:
Failed to get current slot
Failed to run “get_update_slot UPDATE_SLOT”

nvidia@nvidia:~/Downloads/Linux_for_Tegra/tools/ota_tools/version_upgrade$ sudo ./nv_ota_start.sh /mnt/ota_payload_package.tar.gz
Command: ./nv_ota_start.sh /mnt/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_20230302-205948.log
OTA_LOG_FILE=/ota_log/ota_20230302-205948.log
Extract /mnt/ota_payload_package.tar.gz
[ 313.008320] blk_update_request: I/O error, dev sda, sector 279230952 op 0x0:(READ) flags 0x84700 phys_seg 30 prio class 0
update_nv_boot_control_in_rootfs /ota_work
3701–0004–1–jetson-agx-orin-devkit-
Info. Installing mtdblock.
Info. Active boot storage: mmcblk0
Info. Legacy mode: false
TNSPEC 3701-500-0004-F.0-1-1-jetson-agx-orin-devkit-
COMPATIBLE_SPEC 3701–0004–1–jetson-agx-orin-devkit-
TEGRA_LEGACY_UPDATE false
TEGRA_BOOT_STORAGE mmcblk0
TEGRA_EMMC_ONLY false
TEGRA_CHIPID 0x23
TEGRA_OTA_BOOT_DEVICE /dev/mtdblock0
TEGRA_OTA_GPT_DEVICE /dev/mtdblock0
Info: Spec variable TegraPlatformSpec is not found.
Info: Write TegraPlatformSpec with 3701-500-0004-F.0-1-1-jetson-agx-orin-devkit-.
chattr: No such file or directory while trying to stat /sys/firmware/efi/efivars/TegraPlatformSpec-781e084c-a330-417c-b678-38e696380cb9
Info: Spec variable TegraPlatformCompatSpec is not found.
Info: Write TegraPlatformCompatSpec with 3701–0004–1–jetson-agx-orin-devkit-.
chattr: No such file or directory while trying to stat /sys/firmware/efi/efivars/TegraPlatformCompatSpec-781e084c-a330-417c-b678-38e696380cb9
Info. Uninstalling mtdblock.
check_prerequisites
decompress_ota_package ota_package.tar /ota_work
decompress_ota_package: start at Thu 02 Mar 2023 09:09:03 PM CST
Sha1 checksum for /ota_work/ota_package.tar (6e63670133a0a349eac9101f20b4504be99f425c) matches
decompress_ota_package: end at Thu 02 Mar 2023 09:15:29 PM CST
nv_ota_update_without_layout_change.sh
Command: nv_ota_update_without_layout_change.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-R35-ToT/3701–0004-/ to ./images-R35-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
Failed to get current slot
Failed to run “get_update_slot UPDATE_SLOT”
nvidia@nvidia:~/Downloads/Linux_for_Tegra/tools/ota_tools/version_upgrade$

您好!对于这个问题我很着急地需要处理,需要你的帮助

hello jingyi.Li,

since the latest JP-5 release version is jetson-linux-r3560.
is there any reason for moving to r35.5.0 instead of the latest JP-5 release verison?

please give it a try with OTA upgrade from version 35.2.1 to version 35.6.0 directly.

因为我有项目需求从R35.2.1升级到R35.5.0。
我看你们的文档上面是支持从R35.2.1升级到R35.5.0的。
您的意思是忽然不支持了吗?

我很着急需要你的帮助!!!

我很着急需要你的帮助!!!

我十分着急需要你的帮助!!!

hello jingyi.Li,

we’ve confirmed it’s able to OTA upgrade from version 35.2.1 to version 35.5.0 on AGX Orin successfully.

here’re steps for your reference,

[Host PC]

$ export BASE_BSP=/home/user/JetPack-5.1/Linux_for_Tegra
$ export TARGET_BSP=/home/user/JetPack-5.1.3/Linux_for_Tegra
$ cd ${TARGET_BSP}/../
$ sudo tar xpvf ota_tools_R35.5.0_aarch64.tbz2 
$ cd ${TARGET_BSP}
$ sudo -E ./tools/ota_tools/version_upgrade/l4t_generate_ota_package.sh jetson-agx-orin-devkit R35-2
$ scp bootloader/jetson-agx-orin-devkit/ota_payload_package.tar.gz nvidia@[target-ip]:/home/nvidia/.

[AGX-Orin]

$ Unpack ota_tools_R35.5.0_aarch64.tbz2 into ${WORKDIR} directory.
$ mkdir /ota/ 
$ sudo cp ota_payload_package.tar.gz /ota/.
$ cd ${WORKDIR}/Linux_for_Tegra/tools/ota_tools/version_upgrade
$ sudo ./nv_ota_start.sh /ota/ota_payload_package.tar.gz

我已经确认我的步骤和你一模一样,但是我的 /home/user/JetPack-5.1/Linux_for_Tegra
和我的 /home/user/JetPack-5.1.3/Linux_for_Tegra目录下的 roofs文件夹是由我的定制镜像生成的system.img.raw解压得到的。

上面的步骤会不会产生影响。

please share your steps for creating rootfs image.

  1. sudo mkdir -p /home/user/JetPack-5.1/Linux_for_Tegra/rootfs.new

  2. sudo mount -o loop System_Image_5_1_0.img.raw /home/user/JetPack-5.1/Linux_for_Tegra/rootfs.new

  3. sudo cp -p /home/user/JetPack-5.1/Linux_for_Tegra/rootfs.new /home/user/JetPack-5.1/Linux_for_Tegra/rootfs -rf

  4. sudo mkdir -p /home/user/JetPack-5.1.3/Linux_for_Tegra/rootfs.new

  5. sudo mount -o loop System_Image_5_1_3.img.raw /home/user/JetPack-5.1.3/Linux_for_Tegra/rootfs.new

  6. sudo cp -p /home/user/JetPack-5.1.3/Linux_for_Tegra/rootfs.new /home/user/JetPack-5.1.3/Linux_for_Tegra/rootfs -rf