Adding custom device tree overlay to JetPack 6.X
Keywords: NVIDIA Jetson, JetPack, kernel customization, device tree overlays, dtbo
Description
This wiki page shows how to add a custom device tree overlay for NVIDIA platforms with Jetpack 6.X.
Adding custom device tree overlay
Take your_overlay.dts as the custom device tree overlay file to be added.
1. In Jetpack 6.X device tree overlays live in directory: hardware/nvidia/t23x/nv-public/overlay/. Add your_overlay.dts device tree overlay file to this directory.
2. In order to build this file, add the following to the Makefile inside the same directory.
dtbo-y += your_overlay.dtbo
3. Inside Linux_for_Tegra/source directory, export environment variables for compiling and compile dtbs.
export CROSS_COMPILE=$HOME/l4t-gcc/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-
export KERNEL_HEADERS=$PWD/kernel/kernel-jammy-src
make dtbs
Note: Compiled device tree overlay files will be under: Linux_for_Tegra/source/kernel-devicetree/generic-dts/dtbs/.
4. Copy your_overlay.dtbo to Linux_for_Tegra/kernel/dtb.
5. Add your_overlay.dtbo to the machine conf used for flashing. For example, for NVIDIA Jetson Orin Nano developer kit we modify file jetson-orin-nano-devkit.conf and add our overlay to variable OVERLAY_DTB_FILE
OVERLAY_DTB_FILE+=",tegra234-p3768-0000+p3767-0000-dynamic.dtbo,your_overlay.dtbo";
This will load the overlay at boot time.
6. If you do not want to load the device tree overlay at boot time, skip step 5 and do this instead. Copy your_overlay.dtbo to Linux_for_Tegra/rootfs/boot/.
7. After flashing the board the file will be under /boot/ directory. Modify extlinux.conf file inside /boot/extlinux/ directory and add the following entries for FDT and OVERLAY:
TIMEOUT 30
DEFAULT primary
MENU TITLE L4T boot options
LABEL primary
MENU LABEL primary kernel
LINUX /boot/Image
INITRD /boot/initrd
APPEND ${cbootargs}
FDT /boot/dtb/kernel_tegra234-p3768-0000+p3767-0000-nv.dtb
OVERLAY /boot/your_overlay.dtbo
- FDT: specifies the base device tree. On directory /boot/dtb/ you can check which device tree file is being used as base DTB.
- OVERLAY: specifies the overlay to be loaded. When using this entry, FDT needs to be specified as well. You can not use OVERLAY alone without FDT.
8. Reboot the board to apply changes.
Need Further Support?
📞 Book Consultation Call: Show Calendar!
📩 Contact Via Email: support@proventusnova.com
🌐 Visit Our Website: ProventusNova.com
