Hi all,
I’m trying to enable Secure Boot on a Jetson Orin Nano using the odmfuse.sh tool from the L4T R36.4.3 BSP. My goal is to fuse both SBK and PKC keys and later use a custom Yocto image (signed using these keys). However, during fusing, it appears that the keys were not used properly and the fuses may have been burned with zeroed keys instead of the ones I supplied.
Steps I Followed
# Generate PKC keypair
openssl genrsa -out rsa_priv.pem 2048
openssl rsa -in rsa_priv.pem -pubout -out rsa_pub.pem
# Generate public key hash
./bootloader/tegrasign_v3.py --pubkeyhash ~/secure_boot_keys/rsa_pub.pem rsa_pub.hash --key ~/ secure_boot_keys/rsa_priv.pem
# Created SBK Key
echo -e '0x11223344\n0x55667788\n0x99aabbcc\n0xddeeff00\n0x12345678\n0x9abcdef0\n0xfedcba98\n0x76543210' > ~/secure_boot_keys/sbk.key
Created fuse_config.xml
<genericfuse MagicId="0x45535546" version="1.0.0">
<fuse name="PublicKeyHash" size="64" value="0xac0091e5159e1ca8d7c4f1bf4a0218cb686729e2bed3af0814dcab9b518e8b0d818ba1d09e509ac40a9ff80d35fef1982cdffa00001a7ac70315855f5e66d9ae"/>
<fuse name="SecureBootKey" size="32" value="0x112233445566778899aabbccddeeff00123456789abcdef0fedcba9876543210"/>
<fuse name="BootSecurityInfo" size="4" value="0x20b"/>
<fuse name="SecurityMode" size="4" value="0x1"/>
</genericfuse>
Command Used to Fuse
sudo ./odmfuse.sh \
-X ~/secure_boot_keys/fuse_config.xml \
-i 0x23 \
-k ~/secure_boot_keys/rsa_priv.pem \
-S ~/secure_boot_keys/sbk.key \
jetson-orin-nano-devkit
Problem Observed
Even though I supplied the correct SBK and PKC files, the logs indicated that tegrasign assumed a zero-filled SBK, and that the public key hash file was not found:
[ tegrasign_v3.py --key None --list images_list.xml --pubkeyhash pub_key.key --sha sha512 ]
Assuming zero filled SBK key
Warning: pub_key.key is not found
Later lines repeated:
Assuming zero filled SBK key
Yet, the tool completed successfully and printed:
Sending bct_mem... done
Sending blob... done
Fusing complete
But now I’m worried that my board may be permanently fused with zeroed SBK and PKC keys instead of my intended ones.
full logs of error :
test1.txt (97.5 KB)
What I Need Help With
Is there a bug or mistake causing tegrasign to ignore the -k and -S arguments to odmfuse.sh?
Was my board fused with zero keys even though I supplied valid inputs?
How can I confirm exactly what values were burned into the fuses (e.g., SBK, PKC)?