OTA Update to JetPack 4.4 DP fails - error processing package nvidia-l4t-bootloader

Hi,

Sorry about that. I was thinking you might read the adaptation guide so that using different board name.
Please use jetson-xavier at this moment. The adaptation guide does not consider the OTA case.

OTA is new feature in rel-32.3 release but adaptation guides have been there for almost years.

Hi WayneWWW
We flashed our system freshly with the JetPack 4.3 using the board name “jetson-xavier” and after we were able to do the upgrade to 4.4 until the message that the systems should be rebooted. After doing the reboot, we do not have anymore output on the display and we get error messages on the serial debug console:
log_upgrade.txt (31.3 KB)

What happens to customized config files (dtb, cfg,…) when doing an upgrade? Any other suggestions about what went wrong?
Thank you.

I ran into a similar issue upgrading my original Jetson Nano (a02?) to Jetpack 4.4, and googling the error brought me to this thread.
I had previously ran out of space on a 32 gigabyte micro sd card, so I booted with another micro sd card, put the original micro sd card in a usb sd card reader, and created an image of it onto a yet another usb micro sd card reader.
I copied the image to a windows computer and managed to write it onto a 64 gb micro sd card, then booted from it and expanded the main partition to fill the 64 gig micro sd card. I was using that for a month, when I decided to upgrade to Jetpack 4.4 today. (Edit: I have also been using a 128 GB usb key as storage for images from a raspbery pi camera. I don’t think any programs are installed on it. I also share a few directories on samba) I think I was on 4.3 before (I downloaded and flashed the latest image a couple months ago).
I was following this page first:
https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide%2Fquick_start.html%23wwpID0EVHA
I got the error when got to this instruction:
sudo apt dist-upgrade
I was going to finish off this page next, but now I’m afraid to reboot:
(forum won’t let new members post more than 3 urls)

There was an error at the bottom of this message that I’m copying up here:
/opt/ota_package/bl_update_payload.log
Error. Version number is corrupted. Exiting…

I assume that is the clue to rescuing this boot SD card.

Redoing the last few commands:

dylan@jetsonnano:~$ sudo gedit /etc/apt/sources.list.d/nvidia-l4t-apt-source.list
[sudo] password for dylan:
deb https://repo.download.nvidia.com/jetson/common r32.4 main
deb https://repo.download.nvidia.com/jetson/t210 r32.4 main

dylan@jetsonnano:~$ sudo apt update
Get:1 file:/var/cuda-repo-10-0-local-10.0.326 InRelease
Ign:1 file:/var/cuda-repo-10-0-local-10.0.326 InRelease
Get:2 file:/var/visionworks-repo InRelease
Ign:2 file:/var/visionworks-repo InRelease
Get:3 file:/var/visionworks-sfm-repo InRelease
Ign:3 file:/var/visionworks-sfm-repo InRelease
Get:4 file:/var/visionworks-tracking-repo InRelease
Ign:4 file:/var/visionworks-tracking-repo InRelease
Get:5 file:/var/cuda-repo-10-0-local-10.0.326 Release [574 B]
Get:5 file:/var/cuda-repo-10-0-local-10.0.326 Release [574 B]
Get:6 file:/var/visionworks-repo Release [1,999 B]
Get:6 file:/var/visionworks-repo Release [1,999 B]
Get:7 file:/var/visionworks-sfm-repo Release [2,003 B]
Get:7 file:/var/visionworks-sfm-repo Release [2,003 B]
Get:8 file:/var/visionworks-tracking-repo Release [2,008 B]
Get:8 file:/var/visionworks-tracking-repo Release [2,008 B]
(forum won’t let new members post more than 3 urls)

(forum won’t let new members post more than 3 urls)
Fetched 917 kB in 4s (260 kB/s)
Reading package lists… Done
Building dependency tree
Reading state information… Done
All packages are up to date.

dylan@jetsonnano:~$ sudo apt list --upgradable
Listing… Done

dylan@jetsonnano:~$ sudo apt dist-upgrade
Reading package lists… Done
Building dependency tree
Reading state information… Done
Calculating upgrade… Done
The following packages were automatically installed and are no longer required:
apt-clone archdetect-deb bogl-bterm busybox-static cryptsetup-bin dpkg-repack efibootmgr gir1.2-geocodeglib-1.0 gir1.2-timezonemap-1.0
gir1.2-xkl-1.0 grub-common kde-window-manager kinit kio kpackagetool5 kwin-common kwin-data kwin-x11 libdebian-installer4 libfwup1
libkdecorations2-5v5 libkdecorations2private5v5 libkf5activities5 libkf5attica5 libkf5completion-data libkf5completion5 libkf5declarative-data
libkf5declarative5 libkf5doctools5 libkf5globalaccel-data libkf5globalaccel5 libkf5globalaccelprivate5 libkf5idletime5 libkf5jobwidgets-data
libkf5jobwidgets5 libkf5kcmutils-data libkf5kcmutils5 libkf5kiocore5 libkf5kiontlm5 libkf5kiowidgets5 libkf5newstuff-data libkf5newstuff5
libkf5newstuffcore5 libkf5package-data libkf5package5 libkf5plasma5 libkf5quickaddons5 libkf5solid5 libkf5solid5-data libkf5sonnet5-data
libkf5sonnetcore5 libkf5sonnetui5 libkf5textwidgets-data libkf5textwidgets5 libkf5waylandserver5 libkf5xmlgui-bin libkf5xmlgui-data libkf5xmlgui5
libkscreenlocker5 libkwin4-effect-builtins1 libkwineffects11 libkwinglutils11 libkwinxrenderutils11 libllvm8 libqgsttools-p1 libqt5designer5
libqt5help5 libqt5multimedia5 libqt5multimedia5-plugins libqt5multimediaquick-p5 libqt5multimediawidgets5 libqt5positioning5 libqt5quickwidgets5
libqt5sensors5 libqt5webchannel5 libqt5webkit5 libxcb-composite0 libxcb-cursor0 libxcb-damage0 os-prober python3-dbus.mainloop.pyqt5 python3-icu
python3-pam python3-pyqt5 python3-pyqt5.qtsvg python3-pyqt5.qtwebkit python3-sip qml-module-org-kde-kquickcontrolsaddons qml-module-qtmultimedia
qml-module-qtquick2 rdate tasksel tasksel-data
Use ‘sudo apt autoremove’ to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Setting up nvidia-l4t-bootloader (32.4.2-20200408182156) …
3448-300—1–jetson-nano-qspi-sd-mmcblk0p1
Starting bootloader post-install procedure.
ERROR. Procedure for bootloader update FAILED.
Cannot install package. Exiting…
dpkg: error processing package nvidia-l4t-bootloader (–configure):
installed nvidia-l4t-bootloader package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
nvidia-l4t-bootloader
E: Sub-process /usr/bin/dpkg returned an error code (1)

dylan@jetsonnano:~$ sudo gedit /etc/nv_boot_control.conf
TNSPEC 3448-300—1-0-jetson-nano-qspi-sd-mmcblk0p1
COMPATIBLE_SPEC 3448-300—1–jetson-nano-qspi-sd-mmcblk0p1
TEGRA_CHIPID 0x21
TEGRA_OTA_BOOT_DEVICE /dev/mtdblock0
TEGRA_OTA_GPT_DEVICE /dev/mtdblock0

dylan@jetsonnano:~$ sudo gedit /opt/ota_package/bl_update_payload.log
Error. Version number is corrupted. Exiting…
BLOB PATH:
/opt/ota_package/t21x/bl_update_payload

SPEC: 3448-300—1-0-jetson-nano-qspi-sd-mmcblk0p1
Compatible SPEC: 3448-300—1–jetson-nano-qspi-sd-mmcblk0p1

[R]eading 65,536 bytes of /dev/mtdblock0 at offset 4,128,768
[R]eading 65,536 bytes of /dev/mtdblock0 at offset 4,128,768
[R]eading 65,536 bytes of /dev/mtdblock0 at offset 4,128,768
VER number: 0
[R]eading 65,536 bytes of /dev/mtdblock0 at offset 4,128,768
[R]eading 65,536 bytes of /dev/mtdblock0 at offset 4,063,232
VER_b number: 0
[R]eading 65,536 bytes of /dev/mtdblock0 at offset 4,063,232
blob ver number: 320402

Hi Dylan,

Would you mind posting your question on Nano forum board? We will check your issue there.

Hi WanyeWWW

Do you have any update for us?

Hi sevm89,

What happens to customized config files (dtb, cfg,…) when doing an upgrade? Any other suggestions about what went wrong?

Are you saying you trying to OTA jetpack4.4 with custom carrier board, reboot and system becomes abnormal?

If that is what you are doing, then I would say it is obviously expected. Our server definitely installs official dtb and cfg but not a customized one for your board.

Hi WanyeWWW

Yes that is what we are saying. In that case this means that OTA Update can only be used for the Developer Kit and not for any customized system? Or can we just exclude some parts of the Upgrade process which are customized?
I guess most devices out there with the Jetson AGX Xavier module are customized and i would think the OTA Upgrade should also be usable for these devices. We did not customize the kernel neither the bootloader, just the kernel-dtb file and the Configuration Files padvoltage and pinmux under JetPack_4.3_Linux_P2888\Linux_for_Tegra\bootloader\t186ref\BCT. How can we provide customers an Upgrade without the need to flash the system newly?
Thank you.

Hi,

We had similar questions from other customers too. The answer is simple. You have to prepare your own deb file for OTA.

Since the OTA method is based on debian package, you could modify the deb file from nv to your own and deliver.

I’m having the same problem with my TX2 on orbitty carrier board.
How can I change the board name?

Can you elaborate more on how to prepare my own deb file for OTA?
For example, I’m trying to install qemu-user-static, how can I prepare my own deb file for this pacakge? (see the errors below)

Hi,

Please use the deb file provided by us on host and modify the script inside it.

https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide%2Fgetting_started.html%23wwpID0E0PE0HA

Which deb file exactly are you talking about?
And what to I need to modify in the script?

Hi shir,

Sorry that I didn’t notice you are newbie to this thread. Please forget about any deb related stuff here.

Just tell us what was your flash command for this board?

I followed the instructions here:

In the link you will see TX2 -> JetPack 4.2.1 And Above
and then I followed this instructions(automatic flash script):

Hi,

Please rename the cti carrier profile config file to jetson-xavier.conf and reflash your board.

I have a TX2 board(sorry for posting in the xavier forum but I couldn’t find any other related thread)
Will it work to change to a different config file even though I got the orbitty carrier board?
There is no other way without re-flashing my board, I have a lot of important things I want to keep?

Hi,

Please get more familiar with the flash procedure first.

For example, have you ever run the command “sudo ./flash.sh jetson-tx2 mmcblk0p1” by yourself to flash the board?

If you have, then did you ever wonder how does this flash.sh read this “jetson-tx2”? Why not “jetson-tx2-123456” or something else?

To find the answer, please check those .conf files under Linux_for_Tegra folder and you shall know.

The same is applicable to the CTI carrier board profile too. What I want you to do is locate which config file you are using to flash, rename it to jetson-tx2.conf and flash the board.

OK, thanks.
As I understand you want me to do the following commands:

cd ~/nvidia/nvidia_sdk/JetPack_4.4_DP_Linux_DP_JETSON_TX2/Linux_for_Tegra/cti/tx2
mv orbitty.conf jetson-tx2.conf
cd ~/nvidia/nvidia_sdk/JetPack_4.4_DP_Linux_DP_JETSON_TX2/Linux_for_Tegra
./flash.sh cti/tx2/jetson-tx2 mmcblk0p1

But still there is no other solution for this problem without re-flashing the board and erase all my files?

Correct, but minor error here. Sorry that the flash.sh is not smart enough to get the file path.

./flash.sh cti/tx2/jetson-tx2 mmcblk0p1 -> sudo ./flash.sh jetson-tx2 mmcblk0p1

But still there is no other solution for this problem without re-flashing the board and erase all my files?

You could try the clone first. This shall reserve your userspace partition.
https://elinux.org/Jetson/Clone

So to summarize, I will need to do the following:

cd ~/nvidia/nvidia_sdk/JetPack_4.4_DP_Linux_DP_JETSON_TX2/Linux_for_Tegra/cti/tx2
mv orbitty.conf jetson-tx2.conf
cd ~/nvidia/nvidia_sdk/JetPack_4.4_DP_Linux_DP_JETSON_TX2/Linux_for_Tegra
#Clone
sudo ./flash.sh -r -k APP -G backup.img jetson-tx2 mmcblk0p1
#Flash
sudo cp backup.img bootloader/system.img
sudo ./flash.sh -r -k APP jetson-tx2 mmcblk0p1

Update:
I did all this steps and still I’m getting the same error: