I had to develop a system based on Nvidia Jetson Nano board, which required compilation of my own drivers and modification of original device tree.
Unfortunately, it appeared that the original development envirnoment was very unconvenient. E.g., I was forced to install closed source binaries (like “SDK manager”) and give them root access to my development host.
I have found the scripts that allow me to compile the kernel and modules on jetson itself: https://github.com/JetsonHacksNano/buildKernelAndModules
However, I was not able to compile and encrypt the Device Tree.
Fortunately, it appeared, that I can patch the 4.9 kernel used in JetPack 4.2.2, L4T 32.2.1 with a patch enabling the configfs access to the Device Tree overlays.
I have used the patch available at https://raw.githubusercontent.com/xieyaxiongfly/Atheros_CSI_tool_OpenWRT_src_bkup/master/target/linux/brcm2708/patches-4.9/950-0090-OF-DT-Overlay-configfs-interface.patch
After that I was able to switch on the configfs access to DT overlays (CONFIG_OF_CONFIGFS=y).
When Jetson booted, I simply mounted configfs
mount -t configfs none /config
And then I was able to load my DT overlays.
cat ovl_1.dtbo > /config/device-tree/overlays/ovl1/dtbo
and unload them:
That significantly improved the speed of the development.
I hope that this trick may be also useful for others.