L4T 32.5.1 Unable to Update DTB

@WayneWWW

We have discussed this issue previously as well , After updating to L4T 32.5.1, I am unable to update my DTB with custom camera drivers.

This time around there is no nvbootctrl Slots A/B issue as ROOTFS A/B is disabled and only Slot 0 is in use for L4T 32.5.1.

DTB Build does not update , any specific reason ?

Attaching serial port Log
serial_debug_port_log.txt (23.0 KB)

Why is slot A/B related to kernel dtb update…?

Previously Last Year , if you remember , My slot A was getting flashed and slot B was booting due to the wrong priority order .

I was totally not in that thread at all…

Please clarify what is the exact environment now. Do you use emmc or other device to store your data?

I am using an SSD to store the data.

And what is your method to update dtb now?

using the flash script from the L4T Release package, I duly followed all instructions :-

$ sudo tar xpf Tegra186_Linux_R32.5.1_aarch64.tbz2
$ cd Linux_for_Tegra/rootfs/
$ sudo tar xpf …/…/Tegra_Linux_Sample-Root-Filesystem_R32.5.1_aarch64.tbz2
$ cd …/
$ sudo ./apply_binaries.sh

After This used the flash script

Your instructions have nothing to do with dtb… and you first comment says you are using rel32.5.1, why is it becomes 32.4.4 again?

Do you really know what you are doing now?

typo there , I am actually using 32.5.1 only , rest assured I am using the right commands !

Right commands for what?? What are the rest commands?

You didn’t mention the most important part.

Wayne , I have read the Developer Guide , I am using this command for flashing

"sudo ./flash.sh -k kernel-dtb jetson-xavier mmcblk0p1 " where mmcblk0p1 is internal card , I have also tried nvme0n1p1

Ok, so where did you put your new dtb?

I’ve followed these exact steps

Installing DTB
Step 1: Update DTB
Replace the DTB file under “Linux_for_Tegra/kernel/dtb” on your Linux host
by the file in "bin/kernel/ " in release package.
⚫ Jetson AGX Xavier
sudo cp tegra194-p2888-0001-p2822-0000.dtb
Linux_for_Tegra/kernel/dtb/
Step 2: Put Jetson developer kit into “Force Recovery Mode”
Please refer to the quick start guide for how to into “Force Recovery Mode”.
Step 3: Flash the DTB
⚫ Jetson AGX Xavier
cd Linux_for_Tegra/
sudo ./flash.sh -k kernel-dtb jetson-xavier mmcblk0p1
If flash the dtb file successfully, the log should be like below.
*** The [DTB] has been updated successfully. ***

I am getting this dtb updated successfully message as well . I’ve put the UART log for your reference in the first post.

  1. Remove the “quiet” in your /boot/extlinux/extlinux.conf, so that uart log will print the full kerne log. Currently, the kernel log is not fully enabled.

  2. Use /proc/device-tree on your device to check if your change is there or not.

  1. EEMC /Proc is empty , In the SSD under Proc/Devices , I do not find the required cameras /dev/video0 , /dev/video1.

  2. I removed the Quiet and attached the UART Log.
    xavier_uart.txt (72.8 KB)

Hi,

Where did you check exactly…? I feel you went into the wrong place again…

And what did you replace in below step? Where did you copy the dtb file?

Step 1: Update DTB
Replace the DTB file under “Linux_for_Tegra/kernel/dtb” on your Linux host
by the file in "bin/kernel/ " in release package.
⚫ Jetson AGX Xavier
sudo cp tegra194-p2888-0001-p2822-0000.dtb
Linux_for_Tegra/kernel/dtb/

  1. I download the L4T package on the host Computer , I update the dtb file on my host with the dtb provided by camera provider. ( Camera provide gave me a custom dtb , which I am replacing )

  2. I put the Jetson AGX Xavier in force-recovery connect over usb port and see that it is recognised .

  3. Than from my host , I flash the Jetson-xavier mmcblk0p1 ( which I believe is the internal Storage).

Please point me in the right direction , where I am making the mistake ? Last year using the same method ,I got the camera running on L4t 32.4.3 , That time you guided me !!

I am more than happy to learn more and correct, if you can please point me in the right direction , where am i going wrong.

Hi,

  1. /proc/device-tree is a node on your jetson, it is not “on emmc” or “on ssd”. If you system boots up, then it will have this path.
    This path is the whole device tree structure. It is not related to /dev/video0 or /dev/video1. Just like your any arbitrary ubuntu host will have /proc node on it. No matter it is jetson or other x86 host.

  2. What is the “dtb” provided by the camera vendor? What is it file name?

I download the L4T package on the host Computer , I update the dtb file on my host with the dtb provided by camera provider.