I have a few questions regarding using dtbo in Jetpack 5.0.2
What’s the proper way to load dtbo file? I tried to use OVERLAY_DTB_FILE in Linux_for_Tegra/p2822-0000+p2888-0004.conf and reflash. The OVERLAY_DTB_FILE already points to bunch of dtbo files. Shall I remove them and only point OVERLAY_DTB_FILE to my dtbo, or are they critical to AGX so I need to keep them and only append (or prepend?) mine?
After system comes up, the /boot/extlinux/extlinux.conf still shows FDT /boot/dtb/kernel_tegra194-p2888-0001-p2822-0000.dtb. Shouldn’t FDT point to the new dtbo file?
How to tell if dtbo file is indeed being loaded? “dmesg” doesn’t seem to mention the dtbo file.
In the future if I update dtbo file, do I always need to re-flash, or can extlinux.conf be used? Is there something similar to FDT but for dtbo files?
please check developer guide, To Create and Apply a DTB Overlay File for the steps to create and apply device tree overlay.
device tree overlay is designed to apply and update the default configuration while system boot-up. you don’t need to perform flash script to burn the partitions.
you should have dtbo files under /boot/, using Jetson-IO to select the configurations. then it should create another LABEL to specify a new FDT entry.
Compile the .dts file to generate a .dtbo file. Move the .dtbo file to flash_folder/kernel/dtb/ before flashing.
#. Add below lines to the <board>.conf file which is used for flashing the device
OVERLAY_DTB_FILE="${OVERLAY_DTB_FILE},tegra194-camera-overlay-file.dtbo”;
So flash is indeed needed? What exactly does the flash do? I thought it would push the dtbo to /boot on the board, but that doesn’t seem to be the case. If I still need to manually copy the dtbo to board’s /boot, what’s the purpose of flash?
Just copied my dtbo file to /boot and tried sudo /opt/nvidia/jetson-io/jetson-io.py , the screen flashes, and then back to shell. No errors.
I also tried sudo /opt/nvidia/jetson-io/config-by-hardware.py -l, which gives:
Traceback (most recent call last):
File "/opt/nvidia/jetson-io/config-by-hardware.py", line 125, in <module>
main()
File "/opt/nvidia/jetson-io/config-by-hardware.py", line 99, in main
raise RuntimeError("Platform not supported, no headers found!")
RuntimeError: Platform not supported, no headers found!
When using OVERLAY_DTB_FILE list during flash, does it automatically merge all the dtbo files into kernel_tegra194-p2888-0001-p2822-0000.dtb? If not, what exactly does flash.sh do with the list of files in OVERLAY_DTB_FILE ? For people who don’t have custom dtbo files, since the default OVERLAY_DTB_FILE already has a list of included dtbo files, will they be auto merged into the default dtb, or shall we empty the list before flashing?
BTW, I thought JP 5.0.2 no longer uses plugin manager, but if I remove the plugin manager code, eg: Linux_for_Tegra/source/public/hardware/nvidia/platform/t19x/galen/kernel-dts/common/ tegra194-p2888-p2822-pcie-plugin-manager.dtsi, kernel will fail to compile. Am I missing something?
...
In file included from /home/user/workspace/xavier_35.1.0/Linux_for_Tegra/source/public/kernel/kernel-5.10/arch/arm64/boot/dts/../../../../../../hardware/nvidia/platform/t19x/mccoy/kernel-dts/common/tegra194-p2888-0004-e3900-0000-common.dtsi:27,
from /home/user/workspace/xavier_35.1.0/Linux_for_Tegra/source/public/kernel/kernel-5.10/arch/arm64/boot/dts/../../../../../../hardware/nvidia/platform/t19x/mccoy/kernel-dts/tegra194-p2888-0004-e3900-0000.dts:16:
/home/user/workspace/xavier_35.1.0/Linux_for_Tegra/source/public/kernel/kernel-5.10/../../hardware/nvidia/platform/t19x/galen/kernel-dts/common/tegra194-plugin-manager-p2888-0000.dtsi:17:10: fatal error: tegra194-p2888-p2822-pcie-plugin-manager.dtsi: No such file or directory
17 | #include "tegra194-p2888-p2822-pcie-plugin-manager.dtsi"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [/home/user/workspace/xavier_35.1.0/Linux_for_Tegra/source/public/kernel/kernel-5.10/arch/arm64/boot/dts/Makefile:80: arch/arm64/boot/dts/_ddot_/_ddot_/_ddot_/_ddot_/_ddot_/_ddot_/hardware/nvidia/platform/t19x/mccoy/kernel-dts/tegra194-p2888-0004-e3900-0000.dtb] Error 1
make[2]: *** Waiting for unfinished jobs....
CHK include/generated/compile.h
make[1]: *** [/home/user/workspace/xavier_35.1.0/Linux_for_Tegra/source/public/kernel/kernel-5.10/Makefile:1391: dtbs] Error 2
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/home/user/workspace/xavier_35.1.0/kernel-build'
make: *** [Makefile:213: __sub-make] Error 2
In Jetpack 4.x, we use ODMDATA in p2972-0000.conf.common, along with plugin manager. Since Jetpack 5 no longer supports plugin manager, I assume ODMDATA is also not used? Shall I comment it out in p2972-0000.conf.common, before flashing? or is it still being used by something?