Hi everyone. I’m trying to install the Arducam IMX219 multi-camera kit driver on a Jetson AGX Orin 32GB devkit and it keeps failing during the arducam-nvidia-l4t-kernel package install. I’m on L4T 36.3.0 (JetPack). Is the driver package for 36.3.0 actually complete, or is it still pre-release? The installer errors out partway through and I can’t get the cameras set up.
Could you post your exact environment details and the full error output from the install? That will help narrow down where it’s dying.
Sure. Device is the NVIDIA Jetson AGX Orin Developer Kit, 32GB, P3701-0000 module. Camera kit is the Arducam IMX219 Multi-Camera Kit for the Jetson AGX Orin. Running L4T 36.3.0. Here’s what happens when the package installs:
subprocess.CalledProcessError: Command ‘lsblk -n -r -o mountpoint,partlabel’ returned non-zero exit status 1.
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
Unknown error, please send the error message to [email protected]
Thanks for the details. We dug into this and it looks like the 32GB AGX Orin was originally not covered by that driver, and the install is failing in the dtoverlay step because the postinst script runs lsblk -n -r -o mountpoint,partlabel, which returns a non-zero exit and aborts the package setup. We’ve pushed an updated installer to the GitHub release (v0.0.3). Can you reinstall with it, making sure to pick the IMX219 module with the -m flag?
cd ~
wget https://github.com/ArduCAM/MIPI_Camera/releases/download/v0.0.3/install_full.sh
chmod +x ./install_full.sh
./install_full.sh -m imx219
I ran the updated script exactly like that, but it still fails at the same dtoverlays step. This time I can see lsblk itself complaining: “unknown column: mountpoint,partlabel”. That makes config-by-hardware.py crash during dtoverlay install.
Environment:
- NVIDIA Jetson AGX Orin Developer Kit
- user/host: emre@ubuntu
- L4T 36.3.0, kernel 5.15.136-tegra
- driver package: arducam-nvidia-l4t-kernel-t234-agx-orin-5.15.136-tegra-36.3.0-20240626153131_arm64_imx219.deb
- installer: install_full.sh from the v0.0.3 release
- Python 3.10
- scripts involved: /opt/arducam/jetson-io/config-by-hardware.py, /opt/arducam/jetson-io/Jetson/board.py, /opt/arducam/jetson-io/Utils/syscall.py
It downloaded modules.txt, imx219_links.txt, and the .deb above. Full output below, and I’ve attached a screenshot of the terminal as well:
./install_full.sh: line 19: warning: command substitution: ignored null byte in input
NVIDIA Jetson AGX Orin Developer Kit
[sudo] password for emre:
Selecting previously unselected package arducam-nvidia-l4t-kernel.
(Reading database … 203198 files and directories currently installed.)
Preparing to unpack arducam-nvidia-l4t-kernel-t234-agx-orin-5.15.136-tegra-36.3.0-20240626153131_arm64_imx219.deb …
Unpacking arducam-nvidia-l4t-kernel (5.15.136-tegra-36.3.0-20240626153131) …
Setting up arducam-nvidia-l4t-kernel (5.15.136-tegra-36.3.0-20240626153131) …
lsblk: unknown column: mountpoint,partlabel
Traceback (most recent call last):
File “/opt/arducam/jetson-io/config-by-hardware.py”, line 126, in
main()
File “/opt/arducam/jetson-io/config-by-hardware.py”, line 95, in main
jetson = board.Board()
File “/opt/arducam/jetson-io/Jetson/board.py”, line 234, in init
if not _board_partition_is_root_mountpoint(mountpart):
File “/opt/arducam/jetson-io/Jetson/board.py”, line 143, in _board_partition_is_root_mountpoint
if _board_root_partition_get_partlabel() == partlabel:
File “/opt/arducam/jetson-io/Jetson/board.py”, line 123, in _board_root_partition_get_partlabel
entries = syscall.call_out(‘lsblk -n -r -o mountpoint,partlabel’)
File “/opt/arducam/jetson-io/Utils/syscall.py”, line 33, in call_out
output = subprocess.check_output(cmd, shell=True)
File “/usr/lib/python3.10/subprocess.py”, line 421, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File “/usr/lib/python3.10/subprocess.py”, line 526, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command ‘lsblk -n -r -o mountpoint,partlabel’ returned non-zero exit status 1.
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
Unknown error, please send the error message to [email protected]
Thanks, that full traceback is really helpful. The postinst script calls config-by-hardware.py, which builds a board object and then runs lsblk -n -r -o mountpoint,partlabel through Utils/syscall.py’s call_out(). On your L4T 36.3.0 image, lsblk doesn’t recognize that mountpoint,partlabel column combination, so check_output() raises CalledProcessError and the whole dtoverlay step fails — that’s what bubbles up as the dpkg exit status 255.
So the updated installer resolved the “32GB platform wasn’t supported” part, but the dtoverlay step is still tripping over that lsblk column parsing on this setup. I’ve passed this back to the team to look at the board detection logic. In the meantime, can you run lsblk -n -r -o mountpoint,partlabel by hand and paste what it returns, plus lsblk --version? That’ll confirm the util-linux behavior on your image. For now the install is still stuck at the dtoverlays step.