Hi, I’m new to the Jetson family (and even bootloaders) and I’m looking for some pointers.
My end goal is implementing block-level encryption using dm-crypt + LUKS on the Jetson Xavier NX, using the built-in hardware root-of-trust provided by fuses and the SecureBoot system. Are there any tutorials that step through this process in detail? Nvidia has a lot of documentation describing each section in isolation but it’s not completely clear to me how the parts fit together.
In the meantime I’ve been trying to get dm-crypt working on the Jetson Nano Developer Edition, using a separate boot partition and the rootfs encrypted by dm-crypt as suggested here https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_an_entire_system#LUKS_on_a_partition. I’ve realised the /boot directory must be located in the APP partition or /dev/sda1 for the Jetson Nano U-boot to find it, everything else (the rootfs, and another copy of /boot) is a new partition.
I then edited APP/boot/extlinux/extlinux.conf to point the rootfs to the new partition’s UUID using APPEND ${cbootargs} root=PARTUUID=...
, but the Jetson fails to boot - it says /mnt/proc, /mnt/sys and /mnt/dev don’t exist.
I looked at zymbit’s setup script hosted at https://s3.amazonaws.com/zk-sw-repo/mk_encr_ext_rfs.sh for guidance, and comparing with How to modify L4T-INITRD for Xavier? this suggests that I have to make modifications in initrd. Any detailed guidance on how to separate /boot and the /rootfs into 2 partitions would be appreciated.