Hi everyone. I’m running a Jetson Orin Nano with two Arducam IMX219 modules (the Wide Angle one and the Low Distortion IR Sensitive M12 Mount one) and only one camera is ever detected. The one on cam0 shows up fine, but the camera connected to cam1 is not detected at all. I’ve tested both modules and swapped them around — same result.
Setup / what I’ve tried so far:
Configured the CSI connector: sudo /opt/nvidia/jetson-io/jetson-io.py → Configure Jetson 24pin CSI Connector → Configure for compatible hardware → Camera IMX219-C → Save and reboot
Reinstalled JetPack 3 times
Swapped and reseated the MIPI cables multiple times
Tried the camera on cam0 and cam1
ls /dev/video* only returns /dev/video0.
dmesg shows one camera binding and the second one failing its probe:
Error generated. ... Invalid camera device specified 1 specified, 0 max index
WARNING: from element ... Pipeline construction is invalid, please add queues.
Not enough buffering available ...
The ‘0 max index’ looks like only one camera is being enumerated. Anyone seen this before?
Thanks for posting the dmesg output — that’s the useful part here. This doesn’t look like a JetPack problem, so reinstalling again probably won’t change anything.
The 9-0010 device (cam0) binds fine. The 10-0010 device (cam1) fails at the very first I2C read with error -121, which means the kernel is looking for a sensor at that address but can’t actually talk to it. That’s usually a physical connection problem on that port rather than a driver/software issue. I’d carefully reseat the MIPI cable on the CAM1 connector and make sure it’s fully seated and locked in. Also worth moving the ‘cam1’ module to the known-good cam0 port to confirm the module itself works.
To check which port is actually live, run this. sensor_id=0 is CAM0 and sensor_id=1 is CAM1:
Thanks. I reseated the cable on CAM1 again and tried swapping modules around, but no change. I then ran the tests with the camera connected only to cam1 (nothing on cam0).
With sensor_id=0 the pipeline starts and even reports Camera index = 0, but then it dies with NvBufSurfaceFromFd Failed:
GST_ARGUS: Running with following settings:
Camera index = 0
Camera mode = 2
Output Stream W = 1920 H = 1080
seconds to Run = 0
Frame Rate = 29,999999
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
nvbuf_utils: dmabuf_fd -1 mapped entry NOT found
Error generated. ... gstnvarguscamerasrc.cpp, threadExecute:734 NvBufSurfaceFromFd Failed.
Error generated. ... gstnvarguscamerasrc.cpp, threadFunction:245 (propagating)
...
Got EOS from element "pipeline0".
With sensor_id=1 it fails right away:
Error generated. ... Invalid camera device specified 1 specified, 0 max index
start.py also fails with the same NvBufSurfaceFromFd Failed:
So the camera on cam1 still isn’t being seen as a second device. The sensor_id=0 run is confusing because the camera is physically only on cam1, yet it opens Camera index 0 and then fails when it tries to grab buffers.
Thanks for running those — the three results actually fit together.
sensor_id=1 reports ‘0 max index’, so nvarguscamerasrc only knows about one camera device.
sensor_id=0 opens Camera index 0 (the one enumerated device), but then fails with nvbuf_utils: dmabuf_fd -1 mapped entry NOT found / NvBufSurfaceFromFd Failed. That’s the capture path trying to get a buffer from a sensor that isn’t actually delivering frames — consistent with the camera physically sitting on cam1 while the driver only has the cam0 device registered.
And going back to the original dmesg, the second camera (imx219 10-0010) never completed its I2C probe (error -121), so it never gets enumerated as a usable device. Until that port probes successfully, sensor_id=1 will keep saying 0 max index.
At this point the most useful next step is to look at the board directly. I’ve sent you remote session details via private message — please check your messages and we can pick a time to investigate together.