Dtb file in JetPack 6.0

Hello,
I am facing a strange error in jetpack 6.0

I compiled the kernel with a custom dtb file containing the definition of sensors such as max9296 and max9295.
The sensor drivers are probe at startup and I can see them using dmesg.

Now I removed them from the main dtb.
I compiled and install the kernel using nvbuild.sh
I flash the board with the new image and dtb without any definition of max9296 and max9295

I verified that the file /boot/extlinux/extlinux.conf contains the right FDT path to my dtb
I uncompile the dtb on the board and verify there is no mention to max9296 and max9295

But at start up, I can still see the logs of those sensors probe.

So why my old dtb is still loaded?
How can I verify if my extLinuxConfig is loaded without issue?
How can I verify that my changes are applied to kernel-dtb partition and UEFI partition?

Thanks

Hello @MyMylou

I think you could add the following lines in your main device tree (it could be at hardware/nvidia/t23x/nv-public/tegra234-p3737-0000+p3701-0000.dts)

	nvidia,dtsfilename = __FILE__;
	nvidia,dtbbuildtime = __DATE__, __TIME__

perhaps after the model and compatible parameters. Then try to check them at:

cat /proc/device-tree/nvidia,dtbbuildtime
cat /proc/device-tree/nvidia,dtsfilename

to verify if it fits with the time in which the device tree was compiled.

Also, instead of reflashing the new dtb every time, just you can copy your dtb in /boot/dtb/ and edit the FDT entry in /boot/extlinux/extlinux.confas:

TIMEOUT 30
DEFAULT primary

MENU TITLE L4T boot options

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      INITRD /boot/initrd
      FDT /boot/dtb/<your_dtb>
      APPEND ${cbootargs}

One question here:

do you have the nvidia-l4t-bootloader installed in your Jetson?

Hope this helps!
Regards!
Eduardo Salazar
Embedded SW Engineer at RidgeRun

Contact us: support@ridgerun.com
Developers wiki: https://developer.ridgerun.com/
Website: www.ridgerun.com

Hello,

Here is my extlinux.conf
extlinux.conf.txt (1.4 KB)

it is loading main dtb /boot/dtb/kernel_tegra234-p3737-0000+p3701-0005-nv.dtb
and overlay /boot/tegra234-p3737-camera-dual-hawk-ar0234-e3653-overlay.dtbo

/boot/tegra234-p3737-camera-dual-hawk-ar0234-e3653-overlay.dtbo
does not contain any reference to ar0820

Main dtb does not contains any reference to ar0820
kernel_tegra234-p3737-0000+p3701-0005-nv.dtb.txt (243.6 KB)

but dmesg logs show ar0820:

Hello @MyMylou

I check your extlinux.conf and I see that you are using the Jetson IO tool. I would say that first let’s not use that tool and focus on checking that the desired device tree is being loaded with success.

So, lets revert the extlinux.conf changes to the original one. You should see a file similar to extlinux.conf.jetson-io-backup in the /boot/extlinuxpath. Please use it for reverting the extlinux.conf file.

sudo cp /boot/extlinux/extlinux.conf, /boot/extlinux/extlinux.conf.jetson-io-backup

and reboot.

After performing the above, could you please add the following to hardware/nvidia/t23x/nv-public/tegra234-p3737-0000+p3701-0000.dts file ?

/ {
	model = "NVIDIA Jetson AGX Orin Developer Kit";
	compatible = "nvidia,p3737-0000+p3701-0000", "nvidia,p3701-0000", "nvidia,tegra234";
+	nvidia,dtsfilename = __FILE__;
+	nvidia,dtbbuildtime = __DATE__, __TIME__;

compile the device tree (I also recommend that you could follow the instructions that I posted at Issues Building Custom Kernel 36.4 new Jetson Orin Nano Dev Kit - #10 by EduardoSalazar96 to compile the kernel binaries.), copy it to the board over ssh to the /boot/dtb/path as:

# In your host computer
scp $DEVDIR/kernel/dtb/tegra234-p3737-0000+p3701-0005-nv.dtb <board_username)@<board_IP>:/tmp

#In the board
sudo cp /tmp/tegra234-p3737-0000+p3701-0005-nv.dtb /boot/dtb/

and specify it in the extlinux.conf as I mentioned in my previous reply, by adding the following line:

FDT /boot/dtb/tegra234-p3737-0000+p3701-0005-nv.dtb 

Then, reboot the board.

If you finish this step with success you could cat the following paths in order to check that the device tree was loaded correctly:

cat /proc/device-tree/nvidia,dtbbuildtime
cat /proc/device-tree/nvidia,dtsfilename

Regards!

Hello @EduardoSalazar96

We restore the extlinux.conf as you adviced : extlinux.conf.txt (1002 Bytes)

We also added those lines into hardware/nvidia/t23x/nv-public/tegra234-p3737-0000+p3701-0000.dts:

nvidia,dtsfilename = __FILE__;
nvidia,dtbbuildtime = __DATE__, __TIME__;

We are able now to see that the device tree is correctly updated, thanks.

cat /proc/device-tree/nvidia,dtsfilename
kernel_out/hardware/nvidia/t23x/nv-public/tegra234-p3737-0000+p3701-0000.dts
cat /proc/device-tree/nvidia,dtbbuildtime
Jan 24 202516:47:11

However, even if we do not have anymore any dtb overlay applied, we still have the logs showing ar0820 :

Thank you.

Hello would you have an advice on this thread?

It seems that the overlay is server unapplied, even if we follow the steps mentioned previously.

Having a look to other overlays, the devices appears in /proc/device-tree with status disabled. When we select an overlay, the status become “enabled”.
How to set the status to disabled in default mode? I do not see any reference to those devices in the main dtb file

Also how are applied the nodes defined in camera-modules.dtsi (all camera disabled by default) ? I can see there is an include in the dynamic-overlay.dtsi but I don’t understand how to apply it.
Thanks

@kayccc @ShaneCCC any idea?

Hello @MyMylou

Sorry for the late response.

Is there any file name as ar0820.dtsi or something like that?

Could you please check you hardware directory as

find . -iname *ar0820*

and send the output to us?

What I want to do is remove any ar0820 entry file or anything similar to avoid the ar0820 appearing in dmesg.

Regards!

Hello,

I guess this was because we added the overlay in OVERLAY_DTB_FILE.
We remove it from there and did a fresh installation and it solved the issue thanks

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.