Cannot open camera in Jetson Xavier NX

We have 4 imx219 cameras in Xavier NX board, cam0 works fine but cam1,2,3 are failing

We use this command to take a picture:
v4l2-ctl --device /dev/video0 --stream-mmap --stream-to=frame.raw --stream-count=1

cam1 and 2 are outputing this on kernel log and the command just hangs

tegra-camrtc-capture-vi tegra-capture-vi: uncorr_err: request timed out after 2500 ms
[ +0.000355] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: attempting to reset the capture channel
[ +0.000602] (NULL device *): vi_capture_control_message: NULL VI channel received
[ +0.000202] t194-nvcsi 13e10000.host1x:nvcsi@15a00000: csi5_stream_close: Error in closing stream_id=2, csi_port=2
[ +0.000261] (NULL device *): vi_capture_control_message: NULL VI channel received
[ +0.000204] t194-nvcsi 13e10000.host1x:nvcsi@15a00000: csi5_stream_open: VI channel not found for stream- 2 vc- 0
[ +0.000544] tegra-camrtc-capture-vi tegra-capture-vi: err_rec: successfully reset the capture channel

cam3 is crashing the Jetson altogether when attempting to take a picture, no logs found in kern.log file after reboot.

Any suggestions?

Hello @WayneWWW @JerryChang @ShaneCCC ,

Can you provide input on this?


hello felipeapolanco,

may I know which Jetpack release you’re working with.
since there’s only two camera slots on Xavier NX. did you develop the carrier board? or, which customize carrier board you’re using. please also check you’ve update device tree accordingly to enable four camera supports.

Jetpack with Linux 5.10, I think is R35

We have updated the device tree to enable four cameras, they are connected to the CSI 2-lanes and controlled using an I2C mux with an I/O extender for power control.

The cameras power up with the system and seems like reset is working too because we see successful reset logs on the kernel messages.

We are using the Xavier Jetson NX customized carrier board

Our first camera is able to take pictures but the other three can’t

v4l2-ctl --list-devices
NVIDIA Tegra Video Input Device (platform:tegra-camrtc-ca):

vi-output, imx219 30-0010 (platform:tegra-capture-vi:0):

vi-output, imx219 31-0010 (platform:tegra-capture-vi:2):

vi-output, imx219 32-0010 (platform:tegra-capture-vi:4):

vi-output, imx219 33-0010 (platform:tegra-capture-vi:6):

imx219_4cameras.dts (35.7 KB)

could you please give a snapshot of your environment setups.
how you connect all these four cameras since there’re only two camera slots.

I just checked back with the team and we are not using the jetson dev kit, we have a custom carrier board that we designed and built ourselves.

An update on this.

We found out that port-index was incorrect, it needs to match the CSI lane we are addressing like CSI1 is port-index1 even with 2-Lanes CSI cameras.

At the moment only the second camera is timing out, the other 3 are working fine, I will reach out again if I need further help

hello felipeapolanco,

thanks, please review your device tree settings, for example, sensor_signal_properties / sensor_image_properties / sensor_control_properties.
there’re hardware specific settings, i.e. clocks, GPIOs, regulators…etc
sensor specific settings, i.e. slave add., width/height, pixel format, pixel clock…etc.
camera platform specific settings, i.e. all the settings within the field of tegra-camera-platform{…}
and… V4L2 media controller specific settings. i.e. those VI/CSI/sensor port bindings.

these device tree settings should be match your hardware setups.
you may also check V4L2 Sensor Driver Development Tutorial for training video which dive deep into the steps of writing a complete V4L2 compliant driver.

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