Hi,
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: GitHub - JetsonHacksNano/buildKernelAndModules: Build the Linux Kernel and Modules on board the NVIDIA Jetson Nano Developer Kit
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
mkdir /config
mount -t configfs none /config
And then I was able to load my DT overlays.
mkdir /config/device-tree/overlays/ovl1
cat ovl_1.dtbo > /config/device-tree/overlays/ovl1/dtbo
and unload them:
rmdir /config/device-tree/overlays/ovl1
That significantly improved the speed of the development.
I hope that this trick may be also useful for others.
Regards,
Wojtek