Setting pipeline to PAUSED ...
Socket read error. Camera Daemon stopped functioning.....
gst_nvcamera_open() failed ret=0
ERROR: Pipeline doesn't want to pause.
Setting pipeline to NULL ...
Freeing pipeline ...
NvCameraDeamon reports the following block of errors:
(NvOdmDevice) Error ModuleNotPresent: V4L2Device not available (in dvs/git/dirty/git-master_linux/camera-partner/imager/src/V4L2Device.cpp, function findDevice(), line 245)
(NvOdmDevice) Error ModuleNotPresent: (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/V4L2Device.cpp, function initialize(), line 55)
(NvOdmDevice) Error ModuleNotPresent: (propagating from dvs/git/dirty/git-master_linux/camera-partner/imager/src/devices/V4L2SensorViCsi.cpp, function initialize(), line 103)
NvPclDriverInitializeData: Unable to initialize driver v4l2_sensor
NvPclInitializeDrivers: error: Failed to init camera sub module v4l2_sensor
NvPclStartPlatformDrivers: Failed to start module drivers
NvPclStateControllerOpen: Failed ImagerGUID 1. (error 0xA000E)
NvPclOpen: PCL Open Failed. Error: 0xf
SCF: Error BadParameter: Sensor could not be opened. (in src/services/capture/CaptureServiceDeviceSensor.cpp, function getSourceFromGuid(), line 598)
SCF: Error BadParameter: (propagating from src/services/capture/CaptureService.cpp, function addSourceByGuid(), line 781)
SCF: Error BadParameter: (propagating from src/api/CameraDriver.cpp, function addSourceByIndex(), line 276)
SCF: Error BadParameter: (propagating from src/api/CameraDriver.cpp, function getSource(), line 439)
./debug_daemon.sh: line 7: 2231 Segmentation fault (core dumped) sudo /usr/sbin/nvcamera-daemon
Recording directly with v4l2-ctl works fine, v4l2-compliance passes.
It seems like a class device tree issue. The part about “Unable to initialize driver v4l2_sensor” and references to modules makes me think it’s my the tegra-camera-platform node that has an issue. But I don’t see anything different between the module that works and the module that doesn’t.
on a whim I swapped the modules. I changed module0 to module1, and vice versa. That swapped which camera works. Now “2-0010” will stream fine, and “1-0010” won’t open.
The issue only presents with more than one module, and seems to affect the first valid module in the list.
The issue does not care about the explicit numbering or order. Having module0, module1, will cause module0 to not work. Having module1, module2, will cause module 1 not to work.
The issue is not related to the content of the module. Swapping the number module0<->module1 will change which one works or fails.
Inserting a fake module, ex fake module0, then valid module1 and module2, does not seem to help. But I may not have been able to create a convincing enough fake without adding a another definition for a different i2c port.