Confuse on nvidia-l4t-kernel.deb

  • 1 BSP environment:
    jetpack 5.1.1
    R35 (release), REVISION: 3.1
  • 2 Problems:
    postinst in nvidia-l4t-kernel.deb:
t186ref_update () {
    local rootfs_ab=""

    if [ -x "${T186REF_NVBOOTCTRL}" ]; then
        if [ -f "${payload_dir}/${kernel_only_payload}" ]; then
            pushd "${payload_dir}" &> /dev/null || exit 1

            # The payload updater currently only consumes payloads
            # named "/opt/ota_package/bl_update_payload"
            cp "${kernel_only_payload}" \
                "${OTA_PACKAGE_DIR}"/bl_update_payload

            popd &> /dev/null || exit 1
        else
            echo "ERROR. ${payload_dir}/${kernel_only_payload} does not exist."
            echo "Cannot install package. Exiting..."
            exit 1
        fi

        rootfs_ab=$( "${T186REF_NVBOOTCTRL}" -t rootfs get-number-slots )
        if [ "${rootfs_ab}" = "1" ]; then
            echo "Rootfs AB is not enabled."
            # Update current kernel slot A and kernel-dtb slot A.
            install_kernel_on_rootfs_id "0"

        elif [ "${rootfs_ab}" = "2" ]; then
            echo "ERROR. Rootfs AB is enabled. Should never reach here."
            exit 1
        else
            echo "ERROR. Failed to get number of rootfs slots. Exiting..."
            exit 1
        fi

        echo "Reboot the target system for changes to take effect."
    else
        echo "ERROR. ${T186REF_NVBOOTCTRL} is NOT executable."
        echo "Post install script FAILED."
        echo "Cannot install package. Exiting..."
        exit 1
    fi
}

questions:
?what is the purpose of nvidia-l4t-kernel.deb
?Why is it necessary to ensure the existence of kernel_only_payload if we only intend to update the kernel image and kernel DTBs?
?The bl_update_payload file is not explicitly referenced. Is it being referenced in a certain bin tool?

Hi,
If the device cannot be flashed/booted, please refer to the page to get uart log from the device:
Jetson/General debug - eLinux.org
And get logs of host PC and Jetson device for reference. If you are using custom board, you can compare uart log of developer kit and custom board to get more information.
Also please check FAQs:
Jetson AGX Orin FAQ
If possible, we would suggest follow quick start in developer guide to re-flash the system:
Quick Start — NVIDIA Jetson Linux Developer Guide 1 documentation
And see if the issue still persists on a clean-flashed system.
Thanks!

hi @carolyuu
We are not beginners.
Our goal is to update only the kernel image and kernel DTBs.
Your previous response was not helpful at all.
Could you provide a proper answer to the question?
we mean answer questions directly first.

Hi Henry.Lou,

nvidia-l4t-kernel.deb is a debian package which is used for the devkit in debian based OTA update?

kernel_only_payload and bl_update_payload are used in capsule update.

Are you working on the custom carrier board and you want to update kernel image/dtb?
Do you want to generate the update package and perform capsule/OTA update?

Or you can just replace the kernel image/dtb on your board to apply the change.
Please just confirm they are specified in extlinux.conf correctly.

hi @KevinFFF
yes, we are working on custom carrier board, and want to do kernel imge kernel DTBs OTA.

The method described above works effectively, but we prefer not to use extlinux to load the kernel from the file system. Instead, our goal is to directly update the “kernel” and “kernel-dtb” partitions. To achieve this, we referred to the nvidia-l4t-kernel.deb package. In its postinst script, the update is performed using the command:

/usr/sbin/nv_bootloader_payload_updater --part A_kernel

but Why is it necessary to ensure the existence of kernel_only_payload if we only intend to update the kernel image and kernel DTBs?
and how to generate kernel_only_payload.

kernel image is stored in both rootfs and partition(A_kernel, B_kernel) which is applied by default to prevent it fail to load from rootfs.

Please refer to Generating a Specified Partition BUP for this use case.

Or you can just perform image-based OTA update, which will include the capsule update.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.