Hi, We’re developing on Jetson AGX Xavier, and looking to implement secureboot, but I can’t find any documentation on how to tell if a boot failed because of a security failure (ie, no signature, incorrect signature, etc.).
We’re planning on using the PKC key and sign the kernel, kernel-dtb, and cboot, but we’d like to differentiate why a boot failed, and it reverted back to the original boot slot.
BTW,
if that’s possible, please moving to JetPack 4.6.3, it’s the latest JP-4 release version. this release include some bug fixes.
there’s additional tools you’ll need, assume you’ve moving to JP-4.6.3, you should also check linux-tegra-r3273 for the [Tools] section to download secureBoot packages.
I’m not asking how to do Secure Boot, I understand that process, What I’m asking is in the title:
How to tell if a boot failed because of failed secure boot?
I can’t find any documentation on how to tell if a boot failed because of a security failure (ie, no signature, incorrect signature, etc.).
So, please, could you help me in understanding how to know if a boot failed because the images were not signed, or had a invalid signature?
Moving to a later jetpack isn’t something we can do at this moment.
what’s your real use-case, is the board fused or not?
let’s assume you have a target fused with PKC+SBK.
the PKC key is used for signing the images, and SBK is for encrypting the images.
the flash process should be exit with failures reported if you’re not given keys, or mismatch target keys.
and… you may also setup a serial console to gather bootloader logs, it’ll report verification failure.
My use case is running code in production environment, and our code gets notified there’s a firmware update, available. So, we update the firmware, but the kernel isn’t signed properly. We flash and reboot, but the bootloader fails to authenticate the kernel.
So, it reboots, using the previous boot slot into our firmware. how can we tell, after the reboot, that it did not load the new firmware because of a signature failure in software? We will know it didn’t upgrade, since the boot slots will not have changed, but we would like to know WHY it failed.
Also, do we have to use SBK with PKC for Jetson Xavier (AGX and NX) when running jetpack 4.4.1, or can we just use PKC?
please setup a serial console to gather bootloader logs,
you may see-also Jetson AGX Xavier Developer Kit User Guide. it’s port [J501] Micro-USB connector provides access to the UART console.
Hi Jerry,
I know how to look at the logs with my eyes via the console, but how can we tell when running our code, in the field, that an authentication error has occurred? Are the boot logs stored somewhere we can access them when our production code is running in a customer’s premise?
In a perfect world, there are never mistakes, but, we don’t live in that world. It would be good to know that a failed boot occurred because of authentication failures.
So, how can we tell when running our code, in the field, that an authentication error has occurred?