Broken nvidia-l4t-bootloader packge after upgrade?

Hi,
I just flashed my Xavier AGX with latest Jetpack 4.4.
I completed the first boot procedure, setting user name, host name ecc.
Then Ubuntu automatically proposed an update to me via pop-up. I confirmed yes.
The update failed, and now every apt-get install command complains with the following error:

1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up nvidia-l4t-bootloader (32.4.3-20200803161246) ...
2888-400-0001-E.0-1-2-cti/xavier/rogue-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)

Some additional info (commands copied from similar threads in the forum, I’m not sure about their meaning)

cat /etc/nv_boot_control.conf
TNSPEC 2888-400-0001-L.0-1-2-cti/xavier/rogue-mmcblk0p1
COMPATIBLE_SPEC 2888-400-0001-E.0-1-2-cti/xavier/rogue-mmcblk0p1
TEGRA_CHIPID 0x19
TEGRA_OTA_BOOT_DEVICE /dev/mmcblk0boot0
TEGRA_OTA_GPT_DEVICE /dev/mmcblk0boot1

and:

apt-cache policy nvidia-l4t-bootloader 
nvidia-l4t-bootloader:
  Installed: 32.4.3-20200803161246
  Candidate: 32.4.3-20200803161246
  Version table:
 *** 32.4.3-20200803161246 500
        500 https://repo.download.nvidia.com/jetson/t194 r32.4/main arm64 Packages
        100 /var/lib/dpkg/status
     32.4.3-20200709231533 500
        500 https://repo.download.nvidia.com/jetson/t194 r32.4/main arm64 Packages
     32.4.2-20200429224812 500
        500 https://repo.download.nvidia.com/jetson/t194 r32.4/main arm64 Packages
     32.4.2-20200408182620 500
        500 https://repo.download.nvidia.com/jetson/t194 r32.4/main arm64 Packages

what should I do?

This issue is probably due to using a 3rdparty carrier board config and run the OTA update which does not support such board name.

2888-400-0001-E.0-1-2-cti/xavier/rogue-mmcblk0p1

Let me check with internal team if there is any method other than re-flash.

Hi,

What board name did you use to flash your board?

Could you try to move your customization (dtb/BCT) to official board config and do the flash again?

Hi,

What board name did you use to flash your board?

I’m using this carrier board:

Basically I downloaded this file:
https://connecttech.com/ftp/Drivers/CTI-L4T-AGX-32.4.3-V001.tgz
and I followed the instructions contained in the included readme, basically:

  • Copy the CTI-L4T-AGX-32.4.3-V001.tgz package into ~/nvidia/nvidia_sdk/JetPack_4.4_Linux_P2888-0001/Linux_for_Tegra/
  • sudo ./install.sh
  • ./flash.sh rogue mmcblk0p1

Could you try to move your customization (dtb/BCT) to official board config and do the flash again?

I’m sorry, but I do not know what dtb/BCT is. Can you explain me what steps I need to perform?

Hi,

I am not sure if you want to understand why this issue happens, but still let me clarify it.

First, our upgrade/update only recognizes the board name of official nvidia devkit.

It means it will only work if you flash with official board name in original Linux_for_Tegra.

Second, the vendor like Connect Tech should share their own package to do OTA but not rely on NV. Currently, they don’t do this so the apt upgrade/update still uses the package from NV which causes the problem.

Luckily, the check in first point seems only with the board name. It means you could just rename the board config name from"rogue.conf" to the original board name provided NV and it should work.

Some information to clarify…

Different hardware is often available at different addresses, and to avoid hard coding every possible combination into the Linux kernel, a device tree can be used (hot plug devices, e.g., USB, do not need this). Basically this can pass addresses of hardware and various settings which drivers can use. Two different carrier boards might use the same drivers, but the device tree would need to be altered to tell the drivers about how the hardware is arranged. This is part of “firmware”. The device tree (and other firmware) is part of the “board support package” (“BSP”).

The BSP which NVIDIA provides is specific to their development kit carrier board. When using a third party carrier board the base module content does not change, but the part of the BSP related to carrier board layout does change, and only the third party manufacturer can provide this. CTI will provide a BSP for the combination of module type and carrier board. Often using this BSP is basically an overlay on top of the standard install software. CTI will have instructions for this particular board on their website.

The mentioned CTI-L4T-AGX-32.4.3-v001.tgz is basically that overlay. I don’t know where the “./install” file is from, but if it is from CTI, then this is likely to unpack CTI-L4T-AGX-32.4.3-v001.tgz. If the “./install” is something else, then perhaps the content of their BSP was missed and not actually installed.