Hi Shane,
I’m continuing my efforts to get a Sony IMX219 (Raspberry Pi Camera V2) working on the Jetson Nano P3450 (L4T R32.7.1). Below is a consolidated and updated log of everything I’ve tried, including my latest findings from dmesg.
1) Camera driver is present but I²C probe times out
After deploying my Device-Tree overlay and enabling the CSI port, the IMX219 driver (tegracam_v2.0.6) does load:
$ dmesg | grep -i tegracam
[ 1.804819] imx219 7-0010: tegracam sensor driver:imx219_v2.0.6
[ 1.840987] imx219 8-0010: tegracam sensor driver:imx219_v2.0.6
$ dmesg | grep -i imx219
[ 1.828247] imx219 7-0010: imx219_board_setup: error during i2c read probe (-121)
[ 1.835915] imx219 7-0010: board setup failed
[ 1.840377] imx219 8-0010: probe of 8-0010 failed with error -121
[ 1.864373] imx219 8-0010: imx219_board_setup: error during i2c read probe (-121)
- Error -121 (
ETIMEDOUT) confirms that no ACK is received when the driver attempts its initial I²C read.
- This happens on both i2c-6 (channel 1) and i2c-7 (channel 0).
2) Steps performed so far
2.1 Verified no /dev/video0 and empty I²C buses:
v4l2-ctl --list-devices # no video devices
i2cdetect -l # I²C adapters present
sudo i2cdetect -y 6 # all “–” (no devices)
sudo i2cdetect -y 7 # all “–”
2.2 Checked kernel config/modules – IMX219 support wasn’t in-tree:
lsmod | grep -E ‘imx|tegracam|v4l2’
modinfo imx219 # module not found
zcat /proc/config.gz | grep -i VIDEO_IMX219 # no entry
2.3. Installed L4T headers & unpacked source BSP (R32.7.1), then built and installed camera-imx219.ko as a module. No effect.
2.4. Compiled & deployed a Device-Tree overlay for IMX219:
cd .../kernel-dts
dtc -I dts -O dtb \
-o tegra210-p3448-common-imx219.dtbo \
tegra210-p3448-common-imx219.dts
sudo cp tegra210-p3448-common-imx219.dtbo /boot/dtb/overlays/
Added to /boot/extlinux/extlinux.conf under LABEL JetsonIO:
FDTOVERLAYS /boot/dtb/overlays/tegra210-p3448-common-imx219.dtbo
- Rebooted, but I²C still empty and no
/dev/video0.
2.5 Ran jetson-io.pyto enable CSI connector “IMX219”, rebooted—still no I²C traffic.
3) Observations & current hypothesis
- The carrier board headers are broken (checked with a multimeter and voltage is OK) - could be something else?
- The IMX219 driver is present and is binding to the two possible I²C addresses, but all I²C reads time out, so the sensor never gets initialized.
- The fact that
/sys/firmware/fdt/overlays does not exist is expected on Jetson (dynamic overlays aren’t exposed), so I can’t verify overlays there.
- I suspect a missing pinmux or I²C-mux configuration in the upstream P3450 BSP: the CSI clock and data lanes may be enabled, but the associated I²C port isn’t being switched through the Tegra I²C-mux.
4) Additional diagnostic commands
Please let me know if any of these yield useful hints:
# Check applied DTB and overlay in logs:
dmesg | grep -i dtbo
dmesg | grep -i tegra-fuse
# Dump live Device-Tree and search for imx219 node:
sudo dtc -I fs -O dts /sys/firmware/devicetree/base > live.dts
grep -R "imx219" live.dts
# Probe alternate CSI channels:
sudo i2cdetect -y 0
sudo i2cdetect -y 1
# Check I²C-mux logs:
dmesg | grep -i tegra_i2c
dmesg | grep -i pinctrl
Thanks in advance for any guidance or pointers you can share!
– Rod