Arducam IMX519 driver install on Jetson Nano fails with unknown dtoverlays error

Hi, I recently bought two Arducam IMX519 autofocus cameras and I’m trying to install the driver on an Nvidia Jetson Nano, but the install keeps failing. I get this error:

An unknown error occurred while installing dtoverlays.

Here’s the full output:

(Reading database … 169288 files and directories currently installed.)
Preparing to unpack arducam-nvidia-l4t-kernel-t210-4.9.253-tegra-32.7.2-20220518070748_arm64_imx519-low-speed.deb …
Unpacking arducam-nvidia-l4t-kernel (4.9.253-tegra-32.7.2-20220518070748) over (4.9.253-tegra-32.7.2-20220518070748) …
Setting up arducam-nvidia-l4t-kernel (4.9.253-tegra-32.7.2-20220518070748) …
An unknown error occurred while installing dtoverlays.
dpkg: error processing package arducam-nvidia-l4t-kernel (–install): installed arducam-nvidia-l4t-kernel package post-installation script subprocess returned error exit status 255
Errors were encountered while processing:
arducam-nvidia-l4t-kernel

My setup:

  • Nvidia Jetson Nano
  • Package: arducam-nvidia-l4t-kernel / arducam-nvidia-l4t-kernel-t210-4.9.253-tegra-32.7.2-20220518070748
  • Kernel: 4.9.253-tegra-32.7.2-20220518070748 (arm64)

Anyone know what’s going on here? Thanks in advance.

Hi, thanks for the detailed report. First thing I want to check: have you replaced the cboot on this board yet? That’s often the cause when the post-install script fails like this while installing the dtoverlays. Can you confirm whether the cboot has been modified or replaced on your Jetson Nano?

No, I have not modified the cboot at all. I’ll take a look at the link you mentioned and see if that fixes it. If I run into more issues I’ll ask here again.

Sounds good. For reference, here’s the thread that covers this:

The cboot replacement is usually the key factor when the driver install fails on Jetson. Go ahead and check whether you have replaced the cboot, and follow along with that thread. Let us know how it goes.

Okay, so here’s something strange I found while comparing boards.

The driver installs fine on my Nvidia Jetson Nano Developer Kit (the 2GB dev kit) and the camera even works. But on my Seeedstudio Jetson Nano Device it fails. I suspect the driver just isn’t loading on that board.

Both boards report the exact same L4T release:

R32 (release), REVISION: 7.2, GCID: 30192233, BOARD: t210ref, EABI: aarch64, DATE: Wed Apr 20 21:34:48 UTC 2022

And identical kernel versions on both. So why would the same L4T release behave differently on two different boards? I’m open to downgrading the L4T if that helps.

dmesg on the Seeedstudio board:
[ 1.740198] imx219 7-0010: tegracam sensor driver:imx219_v2.0.6
[ 1.763641] imx219 7-0010: imx219_board_setup: error during i2c read probe (-121)
[ 1.771282] imx219 7-0010: board setup failed
[ 1.775735] imx219: probe of 7-0010 failed with error -121
[ 1.776346] imx219 8-0010: tegracam sensor driver:imx219_v2.0.6
[ 1.799733] imx219 8-0010: imx219_board_setup: error during i2c read probe (-121)
[ 1.807302] imx219 8-0010: board setup failed
[ 1.811727] imx219: probe of 8-0010 failed with error -121

dmesg on the reference board (Nvidia Jetson Nano Developer Kit):
[ 1.778006] imx519 6-001a: tegracam sensor driver:imx519_v2.0.6
[ 2.255065] vi 54080000.vi: subdev imx519 6-001a bound

Thanks, that dmesg comparison is really helpful. On the Seeedstudio board the i2c read probes are failing with -121 and the board setup fails, while on the reference board the imx519 binds correctly to the VI subdev. That confirms the driver isn’t loading on the Seeedstudio side.

For this board you have to modify the cboot, there is no other better way. The cboot bug on this setup will prevent the camera driver from being replaced, which is exactly what you’re seeing in those probe failures. Please proceed with modifying the cboot.

I’ll check the cboot fix, but I’m still confused about something. This doesn’t really explain why it works on the other device. Same L4T release, same kernel, yet the Nvidia Jetson Nano Developer Kit loads the driver fine and the Seeedstudio board doesn’t. Can you clarify why modifying cboot would be the answer if one board already works without it?

That’s a fair question, and I owe you a correction here. I didn’t review your carrier board model carefully enough earlier.

Arducam adapts its driver according to the official board. Third-party carrier boards are not supported for the driver installation. The cboot being a classic problem on L4T 32.7.2 is what led me to the earlier judgment, but that was a mistake on my part for this case.

So to be clear: the earlier cboot recommendation was a mistaken judgment. The real issue is that you’re using a third-party carrier board (the Seeedstudio Jetson Nano Device), and the Arducam driver cannot be installed on it because the driver is only adapted for the official board.

In short: if you use a third-party carrier board, you can’t install the Arducam driver either. That’s why it works on the official board but not the Seeedstudio one — cboot is a known problem on 32.7.2, but it wasn’t the correct diagnosis for your situation.