kernel dts modification

can u please suggest a method to modify dts for kernel and build dtb and image to flash the tx2 board?

board:- tx2
jetpack :- 4.2

i modified the dts ‘tegra186-quill-p3310-1000-c03-00-base.dts’ from $HOME/nvidia/nvidia_sdk/JetPack_4.2_Linux_P3310/Linux_for_Tegra/sources/hardware/nvidia/platform/t18x/quill/kernel-dts/

then built the kernel from $HOME/nvidia/nvidia_sdk/JetPack_4.2_Linux_P3310/Linux_for_Tegra/sources/kernel/kernel-4.9/, copied dtb and image to $HOME/nvidia/nvidia_sdk/JetPack_4.2_Linux_P3310/Linux_for_Tegra/kernel/

then flashed the tx2

but modifications have not been reflected when tx2 booted up.

thank you


You can try modifying/replacing the DTB file into $JETPACK_TOP/Linux_for_Tegra/bootloader/. After that, flash the TX2 again.

Hope this can help you.


tried this but not working…

why is it needed to modify in bootloader, when i want to modify just kernel??

can u tell, when i execute make dtbs in kernel-4.9/, referring which dts(location & name) file, dtb file is generated?
my requirement:-
i wanted to remove i2c controller from dts and then build my custom linux image and dtb. when it boots up, "i2cdetect -l " should not list i2c busses.

The NVidia flash script retrieves the device-tree from that folder to compile and sign it. At least, I have tested it from Jetpack 3.3. I am not sure if that has changed in the newer version of Jetpack though. Have you tried flashing without overwriting files:

sudo ./ -r -k kernel-dtb jetson-tx2 mmcblk0p1

Also, when one compiles the bootloader, depending on the configuration, the kernel and device-tree are compiled with the bootloader.

According to your question about using make dtbs, you can follow these steps:

In your case, the commands for zImage, modules and modules_install are not needed. Your DTB will be in $TEGRA_KERNEL_OUT/arch/arm64/boot/dts/

The filename is like: tegra186-quill-p3310-1000-c03-00-base.dtb
It will depend on your TX2.