Fails to update kernel and dtb files for Jetpack4.6

My suggestion is you could clean up the whole system and make sure the true scenario to hit this issue first.

Your case involves too much unnecessary steps to make your current situation.

For example, you have deb package, “apt-get upgrade”, boot from NVMe. But actually your goal is just update the dtb.

If the scenario is just “update dtb + boot from NVMe”, then you should test jetsonIO under such scenario and see the result.

Hi,

Please ignore the deb file installation and apt-get upgrade. As I described the deb file creation was “a misunderstanding” in trying to simplify.

The bahaviour of the system is exactly the same, when the Image and dtb file is manually copied

Attatched is a logfile, based on manual copied Image and dtb

bootlog2.txt (37.3 KB)

Hi,

Looks like the dtb is getting updated now. Is the system able to boot fine?

Hi,

The system boots, but doesn’t load the imx477 drivers

dmesg | grep imx

gives this result

[    1.958300] imx219 9-0010: tegracam sensor driver:imx219_v2.0.6
[    1.981931] imx219 9-0010: imx219_board_setup: error during i2c read probe (-121)
[    1.982223] imx219 9-0010: board setup failed
[    1.982405] imx219: probe of 9-0010 failed with error -121
[    1.982882] imx219 10-0010: tegracam sensor driver:imx219_v2.0.6
[    2.006208] imx219 10-0010: imx219_board_setup: error during i2c read probe (-121)
[    2.006479] imx219 10-0010: board setup failed
[    2.006654] imx219: probe of 10-0010 failed with error -121

and running the command to try to configure dual imx4777

sudo /opt/nvidia/jetson-io/jetson-io.py

Fails, just blinks and exits

Ok, then these are two separate issues

  1. JetsonIO cannot work. We need to check this locally.

  2. dtb is still the imx219. What did you change in your dtb file?

  1. JetsonIO cannot work. We need to check this locally.

There is no error message from running the python script

  1. dtb is still the imx219. What did you change in your dtb file?

In the configuration of building the kernel and dtb, by running

make -C kernel/kernel-4.9/ ARCH=arm64 O=$KERNEL_OUT tegra_defconfig
make -C kernel/kernel-4.9/ ARCH=arm64 O=$KERNEL_OUT menuconfig

Both imx219 and imx477 are enabled, by default

There is no error message from running the python script

Yes, I know. I am not asking you to check. We will help you check.

In the configuration of building the kernel and dtb, by running

Please follow the document to build. Shouldn’t use menuconfig.
https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/kernel_custom.html#

Hi,

Since jetpack4.6 both imx219 and imx477 are enable, so I don’t do any changes in the

make -C kernel/kernel-4.9/ ARCH=arm64 O=$KERNEL_OUT menuconfig

so effectively, I just run

make -C kernel/kernel-4.9/ ARCH=arm64 O=$KERNEL_OUT tegra_defconfig

So to my understanding, according to you linked reference

Hi,

We tried to reproduce your error that cannot operate with jetson-IO. However, we cannot reproduce your issue.

Jetson-IO is still working after we boot from NVMe and using FDT to assign dtb. Please share more detail about the setup otherwise we cannot help you.

Hi,

I follow these instructions to build the kernel and dtb. I skip the patch part, since the imx477 is part of the distribution. I have adapter jetpack 4.6

Raspberry Pi HQ camera IMX477 Linux driver for Jetson

The resulting Image and dtb file are copied to /boot and boot/dtb on target

Adapting the /boot/extlinux/extlinux.conf file to

TIMEOUT 30
DEFAULT primary

MENU TITLE L4T boot options

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      INITRD /boot/initrd
      FDT /boot/dtb/tegra194-p3668-all-p3509-0000.dtb
      APPEND ${cbootargs} quiet root=PARTUUID=78592c69-7480-44eb-abf1-e5bd3cf1$

# When testing a custom kernel, it is recommended that you create a backup of
# the original kernel and add a new entry to this file so that the device can
# fallback to the original kernel. To do this:
#
# 1, Make a backup of the original kernel
#      sudo cp /boot/Image /boot/Image.backup
#
# 2, Copy your custom kernel into /boot/Image
#
# 3, Uncomment below menu setting lines for the original kernel
#
# 4, Reboot

# LABEL backup
#    MENU LABEL backup kernel
#    LINUX /boot/Image.backup
#    INITRD /boot/initrd
#    APPEND ${cbootargs}



LABEL JetsonIO
        MENU LABEL Custom Header Config: <CSI Camera IMX477 Dual>
        LINUX /boot/Image
#       FDT /boot/kernel_tegra194-p3668-all-p3509-0000-user-custom.dtb
        INITRD /boot/initrd
        APPEND ${cbootargs} quiet root=PARTUUID=78592c69-7480-44eb-abf1-e5bd3c$

Hi,

A few other questions

  • Building the kernel from souce build the dtb files without the prefix kernel_, is there a reason or am I missing something
  • Is there any way to tell what error that jetson-io.py produces?
  • Are the .dtbo files located in /boot part of the equation ?
  • Is the kernel_tegra194-p3668-all-p3509-0000-user-custom.dtb file generated by jetson-io, or how is that generated?

Hi,

It turnes out that the problem is related to jetson-io.py.

jetson-io.py just exits without eny message if you have multiple dtb files in the /boot/dtb directory.

Solution is to move the old files to a diffferent directory, e.g. /boot/dtb/old

Now I can run the jetson-io.py that uses the new dtb file to generate a custom dtb file that is used at boot

Wayne, thanks for your support

1 Like

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