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.
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:
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.