Can't find matching TN Spec in OTA Blob!

Hi,
I want to use BUP( Bootloader Payload Update) to update kernel and kernel-dtb,when I followed the document "Jetson Xavier NX / AGX Xavier / TX2 Update and Redundancy
", I received the following error when updating:
root@xavier-neolix:/opt/ota_package# nv_update_engine --install
Nvidia A/B-Redundancy Update tool Version 1.2
current slot 1
Start updating slot 0
Tegra User Block Device: /dev/disk/by-partlabel
Tegra Boot Block Device: /dev/mmcblk0boot0
HEADER: MAGIC NVIDIA__BLOB__V2
HEX_VALUE 131072
BLOB_SIZE 48431574
HEADER_SIZE 48
NUMBER_OF_ELEMENTS 19
HEADER_TYPE 0
UNCOMP_SIZE 48431574
MB1_RATCHET_LV 0
MTS_RATCHET_LV 0
ROLLBACK_FUSE_LV 0
Device TN Spec: 2888-400-0004-K.0-1-2-jetson-xavier-mmcblk0p1
Device Compatible Spec: 2888-400-0004-K.0-1-2-jetson-xavier-mmcblk0p1
Can’t find matching TN Spec in OTA Blob!
OTA Blob update failed. Status: 3
/usr/sbin/nv_bootloader_payload_updater --no-dependent-partition failed.
Slot 0 update failed

What do I need to do to solve this problem?

I used jetpack4.4, L4T32.4.3, flashed the board with command"sudo ./flash.sh jetson-xavier mmcblk0p1 .

Thanks!

BR,

Hi,

That sounds weird. Did you do any customization on your bootloader partition?

Hi WayneWWW,
Thanks very much for your replay!

No,I 'm not customization on my bootloader partition, I just reuse the “Linux_for_Tegra”, which used SDKManage generation, to flash the board.
When I update the BUP by "nv_update_engine"command,I got the error above.
Do you have any suggestions for correcting this mistake?
Thanks!
BR,

hello actiondo,

BUP generation need to specify Board ID, FAB for correct board information.
you may look into your target for the correct TNSPEC. for example, cat /etc/nv_boot_control.conf

please specify those details and execute ./build_l4t_bup.sh to have BUP generation with board information.
thanks

Hi JerryChang,
@JerryChang
Thank you very much for your replay!
I’ve noticed it and I’ve solved it,thanks!
If I want to enable A/B redundancy for rootfs(I follow the link:Enabling A/B redundancy for rootfs), other things are ready, but I’m not sure about this function:
tegrabl_a_b_get_active_slot(NULL, uint32_t *active_slot){…}
How should I modify it?
Thanks!
BR,

hello actiondo,

looks like you’d initial another discussion thread for rootfs A/B redundancy,
let’s moving to Topic 144171 for tracking this.
thanks

Hi JerryChang,

Okay, So I’m going to close the discussion ,thanks!

BR,