Nvcamera daemon crashing when running two gstreamer captures

Hi,

We written a custom camera driver and trying to use nvcamera-daemon to run two cameras via gstreamer. When running two cameras via gstreamer, the nvcamera daemon seg fault.

I am using Jetson 3.3. I have added the logs below with the gst-launch commands.

Regards
Paul

Log for the first camera

GST_DEBUG=3 gst-launch-1.0 nvcamerasrc sensor-id=0 ! "video/x-raw(memory:NVMM),height=800, width=1280, format=I420, framerate=60/1" ! nvvidconv ! xvimagesink -ev
Setting pipeline to PAUSED ...
Socket read error. Camera Daemon stopped functioning.....
0:00:00.687844708 23051       0x5c7960 ERROR            nvcamerasrc gstnvcamerasrc.cpp:2448:gst_nvcamera_open:<nvcamerasrc0> REQ_NVCAM_CREATE_SESSION to camera_daemon failed

gst_nvcamera_open() failed ret=0
0:00:00.687964132 23051       0x5c7960 WARN                 basesrc gstbasesrc.c:3354:gst_base_src_start:<nvcamerasrc0> error: Failed to start
0:00:00.688118660 23051       0x5c7960 WARN                 basesrc gstbasesrc.c:3725:gst_base_src_activate_push:<nvcamerasrc0> Failed to start in push mode
0:00:00.688156932 23051       0x5c7960 WARN                GST_PADS gstpad.c:1106:gst_pad_set_active:<nvcamerasrc0:src> Failed to activate pad
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstNvCameraSrc:nvcamerasrc0: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
Additional debug info:
gstbasesrc.c(3354): gst_base_src_start (): /GstPipeline:pipeline0/GstNvCameraSrc:nvcamerasrc0:
Failed to start
Setting pipeline to NULL ...
Freeing pipeline ...

Log for the second camera

GST_DEBUG=3 gst-launch-1.0 nvcamerasrc sensor-id=3 ! "video/x-raw(memory:NVMM),height=800, width=1280, format=I420, framerate=60/1" ! nvvidconv ! xvimagesink -ev
Setting pipeline to PAUSED ...

Available Sensor modes : 
1280 x 800 FR=100.000000 CF=0x1109208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
0:00:00.587072345 23003       0x5c50f0 FIXME                default gstutils.c:3766:gst_pad_create_stream_id_internal:<nvcamerasrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id
New clock: GstSystemClock

NvCameraSrc: Trying To Set Default Camera Resolution. Selected sensorModeIndex = 0 WxH = 1280x800 FrameRate = 100.000000 ...

/GstPipeline:pipeline0/GstNvCameraSrc:nvcamerasrc0.GstPad:src: caps = "video/x-raw\(memory:NVMM\)\,\ width\=\(int\)1280\,\ height\=\(int\)800\,\ format\=\(string\)I420\,\ framerate\=\(fraction\)60/1"
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = "video/x-raw\(memory:NVMM\)\,\ width\=\(int\)1280\,\ height\=\(int\)800\,\ format\=\(string\)I420\,\ framerate\=\(fraction\)60/1"
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:src: caps = "video/x-raw\,\ width\=\(int\)1280\,\ height\=\(int\)800\,\ framerate\=\(fraction\)60/1\,\ format\=\(string\)YUY2"
/GstPipeline:pipeline0/GstXvImageSink:xvimagesink0.GstPad:sink: caps = "video/x-raw\,\ width\=\(int\)1280\,\ height\=\(int\)800\,\ framerate\=\(fraction\)60/1\,\ format\=\(string\)YUY2"
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:sink: caps = "video/x-raw\(memory:NVMM\)\,\ width\=\(int\)1280\,\ height\=\(int\)800\,\ format\=\(string\)I420\,\ framerate\=\(fraction\)60/1"
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = "video/x-raw\(memory:NVMM\)\,\ width\=\(int\)1280\,\ height\=\(int\)800\,\ format\=\(string\)I420\,\ framerate\=\(fraction\)60/1"
Socket read error. Camera Daemon stopped functioning.....
Received error from camera daemon....exiting....
Got EOS from element "pipeline0".
Execution ended after 0:00:08.380207659
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
0:00:08.969267747 23003       0x5b7610 ERROR            nvcamerasrc gstnvcamerasrc.cpp:2027:gst_nvcamera_close:<nvcamerasrc0> NvCameraSrc: terminate session request failed
Setting pipeline to NULL ...
Freeing pipeline ...

Log for the nvcamera-daemon

FiberScheduler: fiber 0x7f30001390 exiting
Thread 9 getting next capture
disposing CC 943 Session 2
Thread 11 is waiting
Thread 9 is waiting
Thread 1 is waiting
NvPclSettingsUpdate: Sending Updated Settings through PCL
NvPclSettingsApply: Applying last settings through PCL
apply:+++++++++++++++++++++++
apply:-----------------------
NvPclSettingsApply: Reading PCL settings
Created fiber 0x7f30001390 for CC 948 globalID 948 session 2
Thread 7 is working on CC 948 session 2 globalID 948 step 0
CC 948 session 2 completed step 0 in fiber 0x7f30001390
cc 948(847) session 2 runCount=847 runIspOut=843, latest ccId=943
AC Stats Delay Count:5
CC 948 session 2 completed step 1 in fiber 0x7f30001390
NV AE and AfApply algorithms are active.
CC 948 session 2 completed step 2 in fiber 0x7f30001390
CC 948 session 2 completed step 3 in fiber 0x7f30001390
CC 948 session 2 completed step 4 in fiber 0x7f30001390
CC 948 session 2 completed step 5 in fiber 0x7f30001390
CC 948 session 2 completed step 6 in fiber 0x7f30001390
CC 948 session 2 processing step 7 in fiber 0x7f30001390
FiberScheduler: cc 948, session 2, fiber 0x7f30001390 in progress...

Thread 7 getting next capture
Thread 8 is waiting
Thread 7 is waiting
Created fiber 0x7f30000eb0 for CC 949 globalID 949 session 2
Thread 3 is working on CC 949 session 2 globalID 949 step 0
CC 949 session 2 completed step 0 in fiber 0x7f30000eb0
cc 949(848) session 2 runCount=848 runIspOut=843, latest ccId=943
cc 949(848) session 2 waiting
FiberScheduler: cc 944, session 2, fiber 0x7f30001050 succeeded async operation

Thread 6 is working on CC 944 session 2 globalID 944 step 8
NvPclSettingsUpdate: Sending Updated Settings through PCL
NvPclSettingsApply: Applying last settings through PCL
apply:+++++++++++++++++++++++
apply:-----------------------
NvPclSettingsApply: Reading PCL settings
exposureTime=0.041667 analogGain=2.828104 digitalGain=1.000000 commonGain=0.117838 expComp=1.000000

lux in Statsupdate: isAohdrEnable=0 currentSceneLux 222.655
CC 944 session 2 completed step 8 in fiber 0x7f30001050
CC 944 session 2 completed step 9 in fiber 0x7f30001050
CC 944 session 2 completed step 10 in fiber 0x7f30001050
NV AF analysis algorithm is active.
AfAnalysis cc 944 push FK_ISP_RUN_NUMBER=844.
CC 944 session 2 completed step 11 in fiber 0x7f30001050
cc 949(848) session 2 wait completed by ispOut cc 944
AC Stats Delay Count:5
CC 944 session 2 completed step 12 in fiber 0x7f30001050
CC 949 session 2 completed step 1 in fiber 0x7f30000eb0
CC 944 session 2 completed step 13 in fiber 0x7f30001050
NV AE and AfApply algorithms are active.
CC 944 session 2 completed step 14 in fiber 0x7f30001050
CC 944 session 2 completed step 15 in fiber 0x7f30001050
CC 944 session 2 completed step 16 in fiber 0x7f30001050
CC 944 session 2 completed step 17 in fiber 0x7f30001050
FiberScheduler: cc 944, session 2, fiber 0x7f30001050 complete

FiberScheduler: fiber 0x7f30001050 exiting
Thread 6 getting next capture
disposing CC 944 Session 2
Thread 6 is waiting
Thread 2 is waiting
Thread 12 is waiting
CC 949 session 2 completed step 2 in fiber 0x7f30000eb0
CC 949 session 2 completed step 3 in fiber 0x7f30000eb0
CC 949 session 2 completed step 4 in fiber 0x7f30000eb0
CC 949 session 2 completed step 5 in fiber 0x7f30000eb0
CC 949 session 2 completed step 6 in fiber 0x7f30000eb0
CC 949 session 2 processing step 7 in fiber 0x7f30000eb0
FiberScheduler: cc 949, session 2, fiber 0x7f30000eb0 in progress...

Thread 3 getting next capture
Thread 3 is waiting
Thread 4 is waiting
FiberScheduler: cc 945, session 2, fiber 0x7f300008c0 succeeded async operation

Thread 10 is working on CC 945 session 2 globalID 945 step 8
NvPclSettingsUpdate: Sending Updated Settings through PCL
NvPclSettingsApply: Applying last settings through PCL
apply:+++++++++++++++++++++++
apply:-----------------------
NvPclSettingsApply: Reading PCL settings
exposureTime=0.041667 analogGain=2.832344 digitalGain=1.000000 commonGain=0.118014 expComp=1.000000

lux in Statsupdate: isAohdrEnable=0 currentSceneLux 218.791
CC 945 session 2 completed step 8 in fiber 0x7f300008c0
CC 945 session 2 completed step 9 in fiber 0x7f300008c0
CC 945 session 2 completed step 10 in fiber 0x7f300008c0
NV AF analysis algorithm is active.
AfAnalysis cc 945 push FK_ISP_RUN_NUMBER=845.
CC 945 session 2 completed step 11 in fiber 0x7f300008c0
CC 945 session 2 completed step 12 in fiber 0x7f300008c0
CC 945 session 2 completed step 13 in fiber 0x7f300008c0
CC 945 session 2 completed step 14 in fiber 0x7f300008c0
CC 945 session 2 completed step 15 in fiber 0x7f300008c0
CC 945 session 2 completed step 16 in fiber 0x7f300008c0
Thread 5 is working on CC 950 session 2 globalID 950 step 0
CC 950 session 2 completed step 0 in fiber 0x7f30001050
cc 950(849) session 2 runCount=849 runIspOut=845, latest ccId=945
AC Stats Delay Count:5
CC 950 session 2 completed step 1 in fiber 0x7f30001050
NV AE and AfApply algorithms are active.
Created fiber 0x7f30001050 for CC 950 globalID 950 session 2
CC 945 session 2 completed step 17 in fiber 0x7f300008c0
FiberScheduler: cc 945, session 2, fiber 0x7f300008c0 complete

FiberScheduler: fiber 0x7f300008c0 exiting
Thread 10 getting next capture
disposing CC 945 Session 2
Thread 11 is waiting
Thread 10 is waiting
Thread 9 is waiting
CC 950 session 2 completed step 2 in fiber 0x7f30001050
CC 950 session 2 completed step 3 in fiber 0x7f30001050
CC 950 session 2 completed step 4 in fiber 0x7f30001050
CC 950 session 2 completed step 5 in fiber 0x7f30001050
CC 950 session 2 completed step 6 in fiber 0x7f30001050
CC 950 session 2 processing step 7 in fiber 0x7f30001050
FiberScheduler: cc 950, session 2, fiber 0x7f30001050 in progress...

Thread 5 getting next capture
Thread 1 is waiting
Thread 5 is waiting
FiberScheduler: cc 946, session 2, fiber 0x7f300011f0 succeeded async operation

Thread 8 is working on CC 946 session 2 globalID 946 step 8
NvPclSettingsUpdate: Sending Updated Settings through PCL
NvPclSettingsApply: Applying last settings through PCL
apply:+++++++++++++++++++++++
apply:-----------------------
exposureTime=0.041667 analogGain=2.867987 digitalGain=1.000000 commonGain=0.119499 expComp=1.000000

lux in Statsupdate: isAohdrEnable=0 currentSceneLux 200.021
CC 946 session 2 completed step 8 in fiber 0x7f300011f0
CC 946 session 2 completed step 9 in fiber 0x7f300011f0
CC 946 session 2 completed step 10 in fiber 0x7f300011f0
NV AF analysis algorithm is active.
AfAnalysis cc 946 push FK_ISP_RUN_NUMBER=846.
CC 946 session 2 completed step 11 in fiber 0x7f300011f0
CC 946 session 2 completed step 12 in fiber 0x7f300011f0
CC 946 session 2 completed step 13 in fiber 0x7f300011f0
CC 946 session 2 completed step 14 in fiber 0x7f300011f0
CC 946 session 2 completed step 15 in fiber 0x7f300011f0
CC 946 session 2 completed step 16 in fiber 0x7f300011f0
CC 946 session 2 completed step 17 in fiber 0x7f300011f0
FiberScheduler: cc 946, session 2, fiber 0x7f300011f0 complete

FiberScheduler: fiber 0x7f300011f0 exiting
Thread 8 getting next capture
disposing CC 946 Session 2
NvPclSettingsApply: Reading PCL settings
Thread 7 is waiting
Thread 8 is waiting
Created fiber 0x7f300008c0 for CC 951 globalID 951 session 2
Thread 2 is working on CC 951 session 2 globalID 951 step 0
CC 951 session 2 completed step 0 in fiber 0x7f300008c0
cc 951(850) session 2 runCount=850 runIspOut=846, latest ccId=946
AC Stats Delay Count:5
CC 951 session 2 completed step 1 in fiber 0x7f300008c0
NV AE and AfApply algorithms are active.
CC 951 session 2 completed step 2 in fiber 0x7f300008c0
CC 951 session 2 completed step 3 in fiber 0x7f300008c0
Thread 6 is waiting
CC 951 session 2 completed step 4 in fiber 0x7f300008c0
CC 951 session 2 completed step 5 in fiber 0x7f300008c0
CC 951 session 2 completed step 6 in fiber 0x7f300008c0
CC 951 session 2 processing step 7 in fiber 0x7f300008c0
FiberScheduler: cc 951, session 2, fiber 0x7f300008c0 in progress...

Thread 2 getting next capture
Thread 12 is waiting
Thread 2 is waiting
FiberScheduler: cc 947, session 2, fiber 0x7f30000d10 succeeded async operation

Created fiber 0x7f300011f0 for CC 952 globalID 952 session 2
Thread 4 is working on CC 947 session 2 globalID 947 step 8
NvPclSettingsUpdate: Sending Updated Settings through PCL
NvPclSettingsApply: Applying last settings through PCL
apply:+++++++++++++++++++++++
apply:-----------------------
NvPclSettingsApply: Reading PCL settings
exposureTime=0.041667 analogGain=2.906271 digitalGain=1.000000 commonGain=0.121095 expComp=1.000000

lux in Statsupdate: isAohdrEnable=0 currentSceneLux 177.967
CC 947 session 2 completed step 8 in fiber 0x7f30000d10
CC 947 session 2 completed step 9 in fiber 0x7f30000d10
CC 947 session 2 completed step 10 in fiber 0x7f30000d10
NV AF analysis algorithm is active.
AfAnalysis cc 947 push FK_ISP_RUN_NUMBER=847.
CC 947 session 2 completed step 11 in fiber 0x7f30000d10
CC 947 session 2 completed step 12 in fiber 0x7f30000d10
CC 947 session 2 completed step 13 in fiber 0x7f30000d10
CC 947 session 2 completed step 14 in fiber 0x7f30000d10
CC 947 session 2 completed step 15 in fiber 0x7f30000d10
CC 947 session 2 completed step 16 in fiber 0x7f30000d10
CC 947 session 2 completed step 17 in fiber 0x7f30000d10
FiberScheduler: cc 947, session 2, fiber 0x7f30000d10 complete

FiberScheduler: fiber 0x7f30000d10 exiting
Thread 4 getting next capture
disposing CC 947 Session 2
Thread 4 is working on CC 952 session 2 globalID 952 step 0
Thread 10 is waiting
CC 952 session 2 completed step 0 in fiber 0x7f300011f0
Thread 3 is waiting
cc 952(851) session 2 runCount=851 runIspOut=847, latest ccId=947
AC Stats Delay Count:5
Thread 11 is waiting
CC 952 session 2 completed step 1 in fiber 0x7f300011f0
NV AE and AfApply algorithms are active.
CC 952 session 2 completed step 2 in fiber 0x7f300011f0
CC 952 session 2 completed step 3 in fiber 0x7f300011f0
Segmentation fault (core dumped)

Hi paul.lee,

Before running, please doing below setting:

### export DISPLAY to HDMI
export DISPLAY=:0
### Set win_mask to 0x3f
sudo su
cd /sys/class/graphics/fb0
echo 4 > blank
echo 0x0 > device/win_mask
echo 0x3f > device/win_mask
echo 0 > blank

Hi carolyuu,

I have tried the above commands but complains about invalid argument.

root@tegra-ubuntu:/sys/class/graphics/fb0# echo 0x0 > device/win_mask
bash: echo: write error: Invalid argument
root@tegra-ubuntu:/sys/class/graphics/fb0# echo 0x3f > device/win_mask
bash: echo: write error: Invalid argument

Ok I tried it as one line and then tried the gst launch again but still seg fault.

cd /sys/class/graphics/fb0 ; echo 4 > blank ; echo 0x0 > device/win_mask ; echo 0x3f > device/win_mask ; echo 0 > blank

First camera log.

GST_DEBUG=3 gst-launch-1.0 nvcamerasrc sensor-id=0 ! "video/x-raw(memory:NVMM),height=800, width=1280, format=I420, framerate=60/1" ! nvvidconv ! xvimagesink -ev
Setting pipeline to PAUSED ...

Available Sensor modes : 
1280 x 800 FR=100.000000 CF=0x1109208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
0:00:00.847410677  3458       0x5c54f0 FIXME                default gstutils.c:3766:gst_pad_create_stream_id_internal:<nvcamerasrc0:src> Creating random stream-id, consider implementing a deterministic way of creating a stream-id

NvCameraSrc: Trying To Set Default Camera Resolution. Selected sensorModeIndex = 0 WxH = 1280x800 FrameRate = 100.000000 ...

/GstPipeline:pipeline0/GstNvCameraSrc:nvcamerasrc0.GstPad:src: caps = "video/x-raw\(memory:NVMM\)\,\ width\=\(int\)1280\,\ height\=\(int\)800\,\ format\=\(string\)I420\,\ framerate\=\(fraction\)60/1"
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = "video/x-raw\(memory:NVMM\)\,\ width\=\(int\)1280\,\ height\=\(int\)800\,\ format\=\(string\)I420\,\ framerate\=\(fraction\)60/1"
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:src: caps = "video/x-raw\,\ width\=\(int\)1280\,\ height\=\(int\)800\,\ framerate\=\(fraction\)60/1\,\ format\=\(string\)YUY2"
/GstPipeline:pipeline0/GstXvImageSink:xvimagesink0.GstPad:sink: caps = "video/x-raw\,\ width\=\(int\)1280\,\ height\=\(int\)800\,\ framerate\=\(fraction\)60/1\,\ format\=\(string\)YUY2"
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:sink: caps = "video/x-raw\(memory:NVMM\)\,\ width\=\(int\)1280\,\ height\=\(int\)800\,\ format\=\(string\)I420\,\ framerate\=\(fraction\)60/1"
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = "video/x-raw\(memory:NVMM\)\,\ width\=\(int\)1280\,\ height\=\(int\)800\,\ format\=\(string\)I420\,\ framerate\=\(fraction\)60/1"
Received error from camera daemon....exiting....
Socket read error. Camera Daemon stopped functioning.....
Got EOS from element "pipeline0".
Execution ended after 0:00:06.369857422
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
0:00:07.217923865  3458       0x5b7610 ERROR            nvcamerasrc gstnvcamerasrc.cpp:2027:gst_nvcamera_close:<nvcamerasrc0> NvCameraSrc: terminate session request failed
Setting pipeline to NULL ...
Freeing pipeline ...

Second camera log.

GST_DEBUG=3 gst-launch-1.0 nvcamerasrc sensor-id=3 ! "video/x-raw(memory:NVMM),height=800, width=1280, format=I420, framerate=60/1" ! nvvidconv ! xvimagesink -ev
Setting pipeline to PAUSED ...
Socket read error. Camera Daemon stopped functioning.....
0:00:00.625836765  3506       0x5c7960 ERROR            nvcamerasrc gstnvcamerasrc.cpp:2448:gst_nvcamera_open:<nvcamerasrc0> REQ_NVCAM_CREATE_SESSION to camera_daemon failed

gst_nvcamera_open() failed ret=0
0:00:00.625964443  3506       0x5c7960 WARN                 basesrc gstbasesrc.c:3354:gst_base_src_start:<nvcamerasrc0> error: Failed to start
0:00:00.626112728  3506       0x5c7960 WARN                 basesrc gstbasesrc.c:3725:gst_base_src_activate_push:<nvcamerasrc0> Failed to start in push mode
0:00:00.626156311  3506       0x5c7960 WARN                GST_PADS gstpad.c:1106:gst_pad_set_active:<nvcamerasrc0:src> Failed to activate pad
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstNvCameraSrc:nvcamerasrc0: GStreamer error: state change failed and some element failed to post a proper error message with the reason for the failure.
Additional debug info:
gstbasesrc.c(3354): gst_base_src_start (): /GstPipeline:pipeline0/GstNvCameraSrc:nvcamerasrc0:
Failed to start
Setting pipeline to NULL ...
Freeing pipeline ...

daemon log.

lux in Statsupdate: isAohdrEnable=0 currentSceneLux 0.060
CC 645 session 5 completed step 8 in fiber 0x7f3c000b70
CC 645 session 5 completed step 9 in fiber 0x7f3c000b70
CC 645 session 5 completed step 10 in fiber 0x7f3c000b70
NV AF analysis algorithm is active.
AfAnalysis cc 645 push FK_ISP_RUN_NUMBER=545.
CC 645 session 5 completed step 11 in fiber 0x7f3c000b70
CC 645 session 5 completed step 12 in fiber 0x7f3c000b70
cc 650(549) session 5 wait completed by ispOut cc 645
AC Stats Delay Count:5
CC 650 session 5 completed step 1 in fiber 0x7f3c000d10
NV AE and AfApply algorithms are active.
CC 650 session 5 completed step 2 in fiber 0x7f3c000d10
CC 650 session 5 completed step 3 in fiber 0x7f3c000d10
CC 650 session 5 completed step 4 in fiber 0x7f3c000d10
CC 650 session 5 completed step 5 in fiber 0x7f3c000d10
CC 650 session 5 completed step 6 in fiber 0x7f3c000d10
CC 650 session 5 processing step 7 in fiber 0x7f3c000d10
FiberScheduler: cc 650, session 5, fiber 0x7f3c000d10 in progress...

Thread 6 getting next capture
Thread 6 is waiting
Thread 10 is waiting
CC 645 session 5 completed step 13 in fiber 0x7f3c000b70
CC 645 session 5 completed step 14 in fiber 0x7f3c000b70
CC 645 session 5 completed step 15 in fiber 0x7f3c000b70
CC 645 session 5 completed step 16 in fiber 0x7f3c000b70
CC 645 session 5 completed step 17 in fiber 0x7f3c000b70
FiberScheduler: cc 645, session 5, fiber 0x7f3c000b70 complete

FiberScheduler: fiber 0x7f3c000b70 exiting
Thread 3 getting next capture
disposing CC 645 Session 5
Thread 11 is waiting
Thread 7 is waiting
Thread 3 is waiting
FiberScheduler: cc 646, session 5, fiber 0x7f3c0019f0 succeeded async operation

Thread 2 is working on CC 646 session 5 globalID 646 step 8
NvPclSettingsUpdate: Sending Updated Settings through PCL
NvPclSettingsApply: Applying last settings through PCL
apply:+++++++++++++++++++++++
apply:-----------------------
NvPclSettingsApply: Reading PCL settings
exposureTime=0.083330 analogGain=254.999893 digitalGain=26.551159 commonGain=564.189359 expComp=1.000000

lux in Statsupdate: isAohdrEnable=0 currentSceneLux 0.059
CC 646 session 5 completed step 8 in fiber 0x7f3c0019f0
CC 646 session 5 completed step 9 in fiber 0x7f3c0019f0
CC 646 session 5 completed step 10 in fiber 0x7f3c0019f0
NV AF analysis algorithm is active.
AfAnalysis cc 646 push FK_ISP_RUN_NUMBER=546.
CC 646 session 5 completed step 11 in fiber 0x7f3c0019f0
CC 646 session 5 completed step 12 in fiber 0x7f3c0019f0
CC 646 session 5 completed step 13 in fiber 0x7f3c0019f0
CC 646 session 5 completed step 14 in fiber 0x7f3c0019f0
CC 646 session 5 completed step 15 in fiber 0x7f3c0019f0
CC 646 session 5 completed step 16 in fiber 0x7f3c0019f0
CC 646 session 5 completed step 17 in fiber 0x7f3c0019f0
FiberScheduler: cc 646, session 5, fiber 0x7f3c0019f0 complete

FiberScheduler: fiber 0x7f3c0019f0 exiting
Thread 2 getting next capture
disposing CC 646 Session 5
Thread 12 is waiting
Thread 2 is waiting
Thread 4 is waiting
Created fiber 0x7f3c000b70 for CC 651 globalID 651 session 5
Thread 5 is working on CC 651 session 5 globalID 651 step 0
CC 651 session 5 completed step 0 in fiber 0x7f3c000b70
cc 651(550) session 5 runCount=550 runIspOut=546, latest ccId=646
AC Stats Delay Count:5
CC 651 session 5 completed step 1 in fiber 0x7f3c000b70
NV AE and AfApply algorithms are active.
CC 651 session 5 completed step 2 in fiber 0x7f3c000b70
CC 651 session 5 completed step 3 in fiber 0x7f3c000b70
CC 651 session 5 completed step 4 in fiber 0x7f3c000b70
CC 651 session 5 completed step 5 in fiber 0x7f3c000b70
CC 651 session 5 completed step 6 in fiber 0x7f3c000b70
CC 651 session 5 processing step 7 in fiber 0x7f3c000b70
FiberScheduler: cc 651, session 5, fiber 0x7f3c000b70 in progress...

Thread 5 getting next capture
Thread 8 is waiting
Thread 5 is waiting
Segmentation fault (core dumped)

Hi paul,
From the log, it looks like you even cannot launch the first camera successfully. Can you try Argus? It is more like an issue in sensor driver.

I have ran the argus daemon and failed. What are the main components need to be fix in the driver to resolve this?

Daemon log.

/usr/sbin/argus_daemon 
=== Listening for connections... ===
=== Connection 7F7EBF01E0 established ===
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
OFParserGetVirtualDevice: virtual device driver node not found in proc device-tree
OFParserGetVirtualDevice: virtual device driver node not found in proc device-tree
LoadOverridesFile: looking for override file [/Calib/camera_override.isp] 1/16LoadOverridesFile: looking for override file [/data/nvcam/settings/camera_overrides.isp] 2/16LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/camera_overrides.isp] 3/16LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/camera_overrides.isp] 4/16LoadOverridesFile: looking for override file [/data/nvcam/camera_overrides.isp] 5/16LoadOverridesFile: looking for override file [/data/nvcam/settings/imagr1_cam5_ov9782.isp] 6/16LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/imagr1_cam5_ov9782.isp] 7/16LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/imagr1_cam5_ov9782.isp] 8/16---- imager: No override file found. ----
LSC: LSC surface is not based on full res!
LoadOverridesFile: looking for override file [/Calib/camera_override.isp] 1/16LoadOverridesFile: looking for override file [/data/nvcam/settings/camera_overrides.isp] 2/16LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/camera_overrides.isp] 3/16LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/camera_overrides.isp] 4/16LoadOverridesFile: looking for override file [/data/nvcam/camera_overrides.isp] 5/16LoadOverridesFile: looking for override file [/data/nvcam/settings/imagr1_cam4_ov9782.isp] 6/16LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/imagr1_cam4_ov9782.isp] 7/16LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/imagr1_cam4_ov9782.isp] 8/16---- imager: No override file found. ----
(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 4. (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)
(Argus) Error BadParameter:  (propagating from src/api/CameraProviderImpl.cpp, function initialize(), line 92)
(Argus) Error BadParameter:  (propagating from src/api/GlobalProcessState.cpp, function createCameraProvider(), line 214)
CameraProvider result: provider=(nil), shim=0x7f78ad3a30, status=1, rpc status=2, size=9
=== Connection 7F7E3F01E0 established ===
(Argus) Error EndOfFile:  (propagating from libs/rpc_socket_server/ServerSocketManager.cpp, function recvThreadCore(), line 138)
(Argus) Error EndOfFile:  (propagating from libs/rpc_socket_server/ServerSocketManager.cpp, function run(), line 56)
=== Connection 7F7E3F01E0 closed ===
=== Connection 7F7E3F01E0 cleaned up ===
/== CLEANUP 0x7f78ad3a30 ==\
  Destroying real provider (nil)

First camera

argus_camera --device=0
Executing Argus Sample Application (argus_camera)
Argus Version: UNKNOWN
Error generated. /home/nvidia/tegra_multimedia_api/argus/apps/camera/modules/Dispatcher.cpp, initialize:850 No cameras available
Error generated. /home/nvidia/tegra_multimedia_api/argus/apps/camera/modules/Dispatcher.cpp, Dispatcher:803 (propagating)
(NvCameraUtils) Error InvalidState: Mutex already initialized (in Mutex.cpp, function initialize(), line 41)
(Argus) Error InvalidState:  (propagating from src/rpc/socket/client/ClientSocketManager.cpp, function open(), line 54)
(Argus) Error InvalidState:  (propagating from src/rpc/socket/client/SocketClientDispatch.cpp, function openSocketConnection(), line 205)
(Argus) Error InvalidState: Cannot create camera provider (in src/rpc/socket/client/SocketClientDispatch.cpp, function createCameraProvider(), line 129)
^C(Argus) Error EndOfFile: Unexpected error in reading socket (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 214)
(Argus) Error EndOfFile: Receive worker failure, notifying 1 waiting threads (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 289)
(Argus) Error EndOfFile: Client thread received an error from socket (in src/rpc/socket/client/ClientSocketManager.cpp, function send(), line 149)
(Argus) Error InvalidState: Argus client is exiting with 1 outstanding client threads (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 306)
(Argus) Error EndOfFile: Receiving thread terminated with error (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadWrapper(), line 317)
(Argus) Error EndOfFile:  (propagating from src/rpc/socket/client/SocketClientDispatch.cpp, function dispatch(), line 101)
Error generated. /home/nvidia/tegra_multimedia_api/argus/apps/camera/modules/Dispatcher.cpp, initialize:842 Failed to create CameraProvider
Error generated. /home/nvidia/tegra_multimedia_api/argus/apps/camera/modules/Dispatcher.cpp, getInstance:826 Initalization failed
(Argus) Error FileOperationFailed: Connecting to argus_daemon failed: Connection refused (in src/rpc/socket/client/SocketClientDispatch.cpp, function openSocketConnection(), line 190)
(Argus) Error FileOperationFailed: Cannot create camera provider (in src/rpc/socket/client/SocketClientDispatch.cpp, function createCameraProvider(), line 129)
Error generated. /home/nvidia/tegra_multimedia_api/argus/apps/camera/modules/Dispatcher.cpp, initialize:842 Failed to create CameraProvider
Error generated. /home/nvidia/tegra_multimedia_api/argus/apps/camera/modules/Dispatcher.cpp, getInstance:826 Initalization failed
(Argus) Error FileOperationFailed: Connecting to argus_daemon failed: Connection refused (in src/rpc/socket/client/SocketClientDispatch.cpp, function openSocketConnection(), line 190)
(Argus) Error FileOperationFailed: Cannot create camera provider (in src/rpc/socket/client/SocketClientDispatch.cpp, function createCameraProvider(), line 129)
Error generated. /home/nvidia/tegra_multimedia_api/argus/apps/camera/modules/Dispatcher.cpp, initialize:842 Failed to create CameraProvider
Error generated. /home/nvidia/tegra_multimedia_api/argus/apps/camera/modules/Dispatcher.cpp, getInstance:826 Initalization failed
(Argus) Error FileOperationFailed: Connecting to argus_daemon failed: Connection refused (in src/rpc/socket/client/SocketClientDispatch.cpp, function openSocketConnection(), line 190)
(Argus) Error FileOperationFailed: Cannot create camera provider (in src/rpc/socket/client/SocketClientDispatch.cpp, function createCameraProvider(), line 129)
Error generated. /home/nvidia/tegra_multimedia_api/argus/apps/camera/modules/Dispatcher.cpp, initialize:842 Failed to create CameraProvider
Error generated. /home/nvidia/tegra_multimedia_api/argus/apps/camera/modules/Dispatcher.cpp, getInstance:826 Initalization failed
(Argus) Error FileOperationFailed: Connecting to argus_daemon failed: Connection refused (in src/rpc/socket/client/SocketClientDispatch.cpp, function openSocketConnection(), line 190)
(Argus) Error FileOperationFailed: Cannot create camera provider (in src/rpc/socket/client/SocketClientDispatch.cpp, function createCameraProvider(), line 129)
Error generated. /home/nvidia/tegra_multimedia_api/argus/apps/camera/modules/Dispatcher.cpp, initialize:842 Failed to create CameraProvider
Error generated. /home/nvidia/tegra_multimedia_api/argus/apps/camera/modules/Dispatcher.cpp, getInstance:826 Initalization failed
(Argus) Error FileOperationFailed: Connecting to argus_daemon failed: Connection refused (in src/rpc/socket/client/SocketClientDispatch.cpp, function openSocketConnection(), line 190)
(Argus) Error FileOperationFailed: Cannot create camera provider (in src/rpc/socket/client/SocketClientDispatch.cpp, function createCameraProvider(), line 129)
Error generated. /home/nvidia/tegra_multimedia_api/argus/apps/camera/modules/Dispatcher.cpp, initialize:842 Failed to create CameraProvider
Error generated. /home/nvidia/tegra_multimedia_api/argus/apps/camera/modules/Dispatcher.cpp, getInstance:826 Initalization failed
terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_M_construct null not valid
Aborted (core dumped)

Starting one camera and nvidia daemon log without extra log enabled.

NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
OFParserGetVirtualDevice: virtual device driver node not found in proc device-tree
OFParserGetVirtualDevice: virtual device driver node not found in proc device-tree
LoadOverridesFile: looking for override file [/Calib/camera_override.isp] 1/16LoadOverridesFile: looking for override file [/data/nvcam/settings/camera_overrides.isp] 2/16LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/camera_overrides.isp] 3/16LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/camera_overrides.isp] 4/16LoadOverridesFile: looking for override file [/data/nvcam/camera_overrides.isp] 5/16LoadOverridesFile: looking for override file [/data/nvcam/settings/imagr1_cam5_ov9782.isp] 6/16LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/imagr1_cam5_ov9782.isp] 7/16LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/imagr1_cam5_ov9782.isp] 8/16---- imager: No override file found. ----
LSC: LSC surface is not based on full res!
LoadOverridesFile: looking for override file [/Calib/camera_override.isp] 1/16LoadOverridesFile: looking for override file [/data/nvcam/settings/camera_overrides.isp] 2/16LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/camera_overrides.isp] 3/16LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/camera_overrides.isp] 4/16LoadOverridesFile: looking for override file [/data/nvcam/camera_overrides.isp] 5/16LoadOverridesFile: looking for override file [/data/nvcam/settings/imagr1_cam4_ov9782.isp] 6/16LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/imagr1_cam4_ov9782.isp] 7/16LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/imagr1_cam4_ov9782.isp] 8/16---- imager: No override file found. ----
(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 4. (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)
LoadOverridesFile: looking for override file [/Calib/camera_override.isp] 1/16LoadOverridesFile: looking for override file [/data/nvcam/settings/camera_overrides.isp] 2/16LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/camera_overrides.isp] 3/16LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/camera_overrides.isp] 4/16LoadOverridesFile: looking for override file [/data/nvcam/camera_overrides.isp] 5/16LoadOverridesFile: looking for override file [/data/nvcam/settings/imagr1_cam3_ov9782.isp] 6/16LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/imagr1_cam3_ov9782.isp] 7/16LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/imagr1_cam3_ov9782.isp] 8/16---- imager: No override file found. ----
(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 3. (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)
LoadOverridesFile: looking for override file [/Calib/camera_override.isp] 1/16LoadOverridesFile: looking for override file [/data/nvcam/settings/camera_overrides.isp] 2/16LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/camera_overrides.isp] 3/16LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/camera_overrides.isp] 4/16LoadOverridesFile: looking for override file [/data/nvcam/camera_overrides.isp] 5/16LoadOverridesFile: looking for override file [/data/nvcam/settings/imagr1_cam2_ov9782.isp] 6/16LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/imagr1_cam2_ov9782.isp] 7/16LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/imagr1_cam2_ov9782.isp] 8/16---- imager: No override file found. ----
LSC: LSC surface is not based on full res!
LoadOverridesFile: looking for override file [/Calib/camera_override.isp] 1/16LoadOverridesFile: looking for override file [/data/nvcam/settings/camera_overrides.isp] 2/16LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/camera_overrides.isp] 3/16LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/camera_overrides.isp] 4/16LoadOverridesFile: looking for override file [/data/nvcam/camera_overrides.isp] 5/16LoadOverridesFile: looking for override file [/data/nvcam/settings/imagr1_cam1_ov9782.isp] 6/16LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/imagr1_cam1_ov9782.isp] 7/16LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/imagr1_cam1_ov9782.isp] 8/16---- imager: No override file found. ----
(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)
LoadOverridesFile: looking for override file [/Calib/camera_override.isp] 1/16LoadOverridesFile: looking for override file [/data/nvcam/settings/camera_overrides.isp] 2/16LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/camera_overrides.isp] 3/16LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/camera_overrides.isp] 4/16LoadOverridesFile: looking for override file [/data/nvcam/camera_overrides.isp] 5/16LoadOverridesFile: looking for override file [/data/nvcam/settings/imagr1_cam0_ov9782.isp] 6/16LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/imagr1_cam0_ov9782.isp] 7/16LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/imagr1_cam0_ov9782.isp] 8/16---- imager: No override file found. ----
(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 0. (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)
LSC: LSC surface is not based on full res!
SCF: Error InvalidState:  NonFatal ISO BW requested not set. Requested = 2147483647 Set = 4500000 (in src/services/power/PowerServiceCore.cpp, function setCameraBw(), line 653)
^C

Which area of the device tree I should be looking at?

Hi paul,
Please check sensor driver programming guide in https://developer.nvidia.com/embedded/dlc/l4t-documentation-28-2-ga

So the badge information is used to register for the ISP from reading the forum. What else does the argus daemon needs from the device tree?

The Sensor Driver Programming Guide is good upto a certain point but doesn’t explain what argus and nvcamerasrc requires to get it to function correctly.

the device tree we have disabled all the cameras and added our own device tree that is linked via this file tegra186-quill-p3310-a00-00-base.dts.

Below is the new camera device tree.

#define CAM0_RST_L      TEGRA_MAIN_GPIO(R, 5)
#define CAM0_PWDN       TEGRA_MAIN_GPIO(R, 0)
#define CAM1_RST_L      TEGRA_MAIN_GPIO(R, 1)
#define CAM1_PWDN       TEGRA_MAIN_GPIO(L, 6)

/* CAM2_RST  TCA9539 - P10 */
/* CAM2_PWDN  TCA9539 - P07 */
/* CAM_AF_PWDN  TCA9539 - P13 */


#define CAMERA_I2C_MUX_BUS(x) (0x1E + x)

/ {
   	gpio@2200000 {
                camera-control-output-low {
                        gpio-hog;
                        output-high;
                        gpios = <CAM0_RST_L 0 CAM0_PWDN 0
                                 CAM1_RST_L 0 CAM1_PWDN 0>;
                        label = "cam0-rst", "cam0-pwdn",
                                "cam1-rst", "cam1-pwdn";                     
						status = "okay";
                };
        };

	host1x {
		vi@15700000 {
			num-channels = <6>;
			ports {
				#address-cells = <1>;
				#size-cells = <0>;
				port@0 {
					status="okay";
					reg = <0>;
					imagr1_vi_in0: endpoint {
						csi-port = <0>;
						bus-width = <2>;
						remote-endpoint = <&imagr1_csi_out0>;
						status="okay";
					};
				};
				port@1 {
					status="okay";
					reg = <1>;
					imagr1_vi_in1: endpoint {
						csi-port = <1>;
						bus-width = <2>;
						remote-endpoint = <&imagr1_csi_out1>;
						status="okay";
					};
				};
				port@2 {
					status="okay";
					reg = <2>;
					imagr1_vi_in2: endpoint {
						csi-port = <2>;
						bus-width = <2>;
						remote-endpoint = <&imagr1_csi_out2>;
						status="okay";
					};
				};
				port@3 {
					status="okay";
					reg = <3>;
					imagr1_vi_in3: endpoint {
						csi-port = <3>;
						bus-width = <2>;
						remote-endpoint = <&imagr1_csi_out3>;
						status="okay";
					};
				};
				port@4 {
					status="okay";
					reg = <4>;
					imagr1_vi_in4: endpoint {
						csi-port = <4>;
						bus-width = <2>;
						remote-endpoint = <&imagr1_csi_out4>;
						status="okay";
					};
				};
				port@5 {
					status="okay";
					reg = <5>;
					imagr1_vi_in5: endpoint {
						csi-port = <5>;
						bus-width = <2>;
						remote-endpoint = <&imagr1_csi_out5>;
						status="okay";
					};
				};
			};
		};

		nvcsi@150c0000 {
			num-channels = <6>;
			channel@0 {
                                reg = <0>;
				status = "okay";
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						reg = <0>;
						status = "okay";
						imagr1_csi_in0: endpoint@0 {
							csi-port = <0>;
							bus-width = <2>;
							remote-endpoint = <&imagr1_ov5640_out0>;
							status = "okay";
						};
					};
					port@1 {
						reg = <1>;
						status = "okay";
						imagr1_csi_out0: endpoint@1 {
							remote-endpoint = <&imagr1_vi_in0>;
							status = "okay";
						};
					};
				};
			};
			channel@1 {
				reg = <1>;
				status = "okay";
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						reg = <0>;
						status = "okay";
						imagr1_csi_in1: endpoint@2 {
							csi-port = <1>;
							bus-width = <2>;
							remote-endpoint = <&imagr1_ov5640_out1>;
							status = "okay";
						};
					};
					port@1 {
						reg = <1>;
						status = "okay";
						imagr1_csi_out1: endpoint@3 {
							remote-endpoint = <&imagr1_vi_in1>;
							status = "okay";
						};
					};
				};
			};
			channel@2 {
				reg = <2>;
				status = "okay";
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						reg = <0>;
						status = "okay";
						imagr1_csi_in2: endpoint@4 {
							csi-port = <2>;
							bus-width = <2>;
							remote-endpoint = <&imagr1_ov5640_out2>;
							status = "okay";
						};
					};
					port@1 {
						reg = <1>;
						status = "okay";
						imagr1_csi_out2: endpoint@5 {
							remote-endpoint = <&imagr1_vi_in2>;
							status = "okay";
						};
					};
				};
			};
			channel@3 {
				reg = <3>;
				status = "okay";
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						reg = <0>;
						status = "okay";
						imagr1_csi_in3: endpoint@6 {
							csi-port = <3>;
							bus-width = <2>;
							remote-endpoint = <&imagr1_ov5640_out3>;
							status = "okay";
						};
					};
					port@1 {
						reg = <1>;
						status = "okay";
						imagr1_csi_out3: endpoint@7 {
							remote-endpoint = <&imagr1_vi_in3>;
							status = "okay";
						};
					};
				};
			};
			channel@4 {
				reg = <4>;
				status = "okay";
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						reg = <0>;
						status = "okay";
						imagr1_csi_in4: endpoint@8 {
							csi-port = <4>;
							bus-width = <2>;
							remote-endpoint = <&imagr1_ov5640_out4>;
							status = "okay";
						};
					};
					port@1 {
						reg = <1>;
						status = "okay";
						imagr1_csi_out4: endpoint@9 {
							remote-endpoint = <&imagr1_vi_in4>;
							status = "okay";
						};
					};
				};
			};
			channel@5 {
				reg = <5>;
				status = "okay";
				ports {
					#address-cells = <1>;
					#size-cells = <0>;
					port@0 {
						reg = <0>;
						status = "okay";
						imagr1_csi_in5: endpoint@10 {
							csi-port = <5>;
							bus-width = <2>;
							remote-endpoint = <&imagr1_ov5640_out5>;
							status = "okay";
						};
					};
					port@1 {
						reg = <1>;
						status = "okay";
						imagr1_csi_out5: endpoint@11 {
							remote-endpoint = <&imagr1_vi_in5>;
							status = "okay";
						};
					};
				};
			};
		};
	};

	i2c@3180000 {
		tca9548@70 {
			compatible = "nxp,pca9548";
			reg = <0x70>;
			#address-cells = <1>;
			#size-cells = <0>;
			vcc-supply = <&en_vdd_cam>;			
			vcc_lp ="vcc";
			skip_mux_detect;
			force_bus_start = <CAMERA_I2C_MUX_BUS(0)>;

			status = "okay";


			i2c@0 {
				reg = <5>;
				i2c-mux,deselect-on-exit;
				#address-cells = <1>;
				#size-cells = <0>;
				status = "okay";

				ov5640_a@60 {

					//clocks = <&tegra_car TEGRA186_CLK_EXTPERIPH1>;
					//clock-names = "extperiph1";
					mclk = "extperiph1"; //coomon driver 
					clock-frequency = <24000000>;
					
   					clocks = <&tegra_car TEGRA186_CLK_EXTPERIPH1>, <&tegra_car TEGRA186_CLK_PLLP_OUT0>;
					clock-names = "extperiph1", "pllp_grtba";
					
					mclk-index = <0>;
					parent-clk-index = <1>; 
     				

					//small trick as we initializ the main PWD in diffrent place here we can inistialize the 3 one 

					//pwdn-gpios = <&tegra_main_gpio CAM0_PWDN GPIO_ACTIVE_HIGH>;
					//pwdn-gpios  = <&gpio_i2c_0_77 7 GPIO_ACTIVE_HIGH>;
					
					
					dovdd-supply = <&en_vdd_cam>;
					vana-supply = <&en_vdd_cam_hv_2v8>;
					vdig-supply = <&en_vdd_cam_1v2>;
					avdd-reg = "vana";
					dvdd-reg = "vdig";
					iovdd-reg = "dovdd";

					devnode = "video0";
					compatible = "nvidia,ov5640";
					reg = <0x60>;

					sensor_model ="ov5640";
					/* Physical dimensions of sensor */					
					/* This is not used but nice to have  */ 
					physical_w = "3.896";
					physical_h = "2.453";
					
					status = "okay";

					fsync="slave"; //"master""slave"


					/* Supported - mclk
					pwdn-gpios
					reset-gpios
					mcu-boot-gpios
					mcu-reset-gpios

					*/

					/* TODO FIS ME AND ADD THE REST OF THE MODES*/
					mode0 { //Taken from OV5693_MODE_1280X720
						mclk_khz = "24000";
						num_lanes = "2";
						tegra_sinterface = "serial_f";
						discontinuous_clk = "no";
						dpcm_enable = "false";
						cil_settletime = "0";

						active_w = "1280";
						active_h = "800";
						
						pixel_t = "bayer_bggr";
						dynamic_pixel_bit_depth = "10";
						csi_pixel_bit_depth = "10";
//						mode_type = "bayer";
//						pixel_phase = "rggb";						
						
						readout_orientation = "0";
						line_length = "1752";
						inherent_gain = "1";
						mclk_multiplier = "6.67";
						pix_clk_hz = "160000000";

						gain_factor = "16";
						min_gain_val = "1.0";
						max_gain_val = "255";
						min_hdr_ratio = "1";
						max_hdr_ratio = "64";
						min_framerate = "2.787078";
						max_framerate = "100";
						min_exp_time = "22";
						max_exp_time = "358733";
					};

					ports {
						#address-cells = <1>;
						#size-cells = <0>;

						port@0 {
							reg = <0>;
							imagr1_ov5640_out0: endpoint {
								csi-port = <5>;
								bus-width = <2>;
								remote-endpoint = <&imagr1_csi_in0>;
							};
						};
					};
				};
			};

			i2c@1 {
				reg = <2>;
				i2c-mux,deselect-on-exit;
				#address-cells = <1>;
				#size-cells = <0>;
				status = "okay";

				ov5640_b@60 {
					devnode = "video1";
					compatible = "nvidia,ov5640";
					reg = <0x60>;

					/* Physical dimensions of sensor */					
					physical_w = "3.896";
					physical_h = "2.453";

					sensor_model ="ov5640";

					mclk = "extperiph1";
					clock-frequency = <24000000>;
					clocks = <&tegra_car TEGRA186_CLK_EXTPERIPH1>, <&tegra_car TEGRA186_CLK_PLLP_OUT0>;
					clock-names = "extperiph1", "pllp_grtba";
					mclk-index = <0>;
					parent-clk-index = <1>; 

					fsync="slave"; //"master""slave"

					//pwdn-gpios = <&tegra_main_gpio CAM0_RST_L GPIO_ACTIVE_HIGH>;

					/* reset-gpios = <&tca6408_21 1 GPIO_ACTIVE_HIGH>; */
					vana-supply = <&en_vdd_cam_hv_2v8>;
					vdig-supply = <&en_vdd_cam_1v2>;
					dovdd-supply = <&en_vdd_cam>;
					avdd-reg = "vana";
					dvdd-reg = "vdig";
					iovdd-reg = "dovdd";


					status = "okay";

					/* TODO FIS ME AND ADD THE REST OF THE MODES*/
					mode0 { //Taken from OV5693_MODE_1280X720
						mclk_khz = "24000";
						num_lanes = "2";
						tegra_sinterface = "serial_d";
						discontinuous_clk = "no";
						dpcm_enable = "false";
						cil_settletime = "0";

						active_w = "1280";
						active_h = "800";
						pixel_t = "bayer_bggr";
						dynamic_pixel_bit_depth = "10";
						csi_pixel_bit_depth = "10";
//						mode_type = "bayer";
//						pixel_phase = "rggb";
						
						
						readout_orientation = "0";
						line_length = "1752";
						inherent_gain = "1";
						mclk_multiplier = "6.67";
						pix_clk_hz = "160000000";

						gain_factor = "16";
						min_gain_val = "1.0";
						max_gain_val = "255";
						min_hdr_ratio = "1";
						max_hdr_ratio = "64";
						min_framerate = "2.787078";
						max_framerate = "100";
						min_exp_time = "22";
						max_exp_time = "358733";
					};
					ports {
						#address-cells = <1>;
						#size-cells = <0>;

						port@0 {
							reg = <0>;
							imagr1_ov5640_out1: endpoint {
								csi-port = <4>;
								bus-width = <2>;
								remote-endpoint = <&imagr1_csi_in1>;
							};
						};
					};
				};
			};

			i2c@2 {
				reg = <4>;
				i2c-mux,deselect-on-exit;
				#address-cells = <1>;
				#size-cells = <0>;
				status = "okay";

				ov5640_c@60 {
					devnode = "video2";
					compatible = "nvidia,ov5640";
					reg = <0x60>;

					/* Physical dimensions of sensor */					
					physical_w = "3.896";
					physical_h = "2.453";

					sensor_model ="ov5640";

					mclk = "extperiph2";
					clock-frequency = <24000000>;
					clocks = <&tegra_car TEGRA186_CLK_EXTPERIPH2>, <&tegra_car TEGRA186_CLK_PLLP_OUT0>;
					clock-names = "extperiph2", "pllp_grtba";
					mclk-index = <0>;
					parent-clk-index = <1>; 

					fsync="slave"; //"master""slave"

					//pwdn-gpios = <&tegra_main_gpio CAM1_PWDN GPIO_ACTIVE_HIGH>;

					/* reset-gpios = <&tca6408_21 2 GPIO_ACTIVE_HIGH>; */
					vana-supply = <&en_vdd_cam_hv_2v8>;
					vdig-supply = <&en_vdd_cam_1v2>;
					dovdd-supply = <&en_vdd_cam>;
					avdd-reg = "vana";
					dvdd-reg = "vdig";
					iovdd-reg = "dovdd";

					status = "okay";

					/* TODO FIS ME AND ADD THE REST OF THE MODES*/
					mode0 { //Taken from OV5693_MODE_1280X720
						mclk_khz = "24000";
						num_lanes = "2";
						tegra_sinterface = "serial_b";
						discontinuous_clk = "no";
						dpcm_enable = "false";
						cil_settletime = "0";

						active_w = "1280";
						active_h = "800";
						pixel_t = "bayer_bggr";
						dynamic_pixel_bit_depth = "10";
						csi_pixel_bit_depth = "10";
//						mode_type = "bayer";
//						pixel_phase = "rggb";
						
						readout_orientation = "0";
						line_length = "1752";
						inherent_gain = "1";
						mclk_multiplier = "6.67";
						pix_clk_hz = "160000000";

						gain_factor = "16";
						min_gain_val = "1.0";
						max_gain_val = "255";
						min_hdr_ratio = "1";
						max_hdr_ratio = "64";
						min_framerate = "2.787078";
						max_framerate = "100";
						min_exp_time = "22";
						max_exp_time = "358733";
					};
					ports {
						#address-cells = <1>;
						#size-cells = <0>;

						port@0 {
							reg = <0>;
							imagr1_ov5640_out2: endpoint {
								csi-port = <3>;
								bus-width = <2>;
								remote-endpoint = <&imagr1_csi_in2>;
							};
						};
					};
				};
			};

			i2c@3 {
				reg = <1>;
				i2c-mux,deselect-on-exit;
				#address-cells = <1>;
				#size-cells = <0>;
				status = "okay";

				ov5640_d@60 {
					devnode = "video3";
					compatible = "nvidia,ov5640";
					reg = <0x60>;

					/* Physical dimensions of sensor */					
					physical_w = "3.896";
					physical_h = "2.453";

					sensor_model ="ov5640";

					mclk = "extperiph2";
					clock-frequency = <24000000>;
					clocks = <&tegra_car TEGRA186_CLK_EXTPERIPH2>, <&tegra_car TEGRA186_CLK_PLLP_OUT0>;
					clock-names = "extperiph2", "pllp_grtba";
					mclk-index = <0>;
					parent-clk-index = <1>; 

					fsync="slave"; //"master""slave"

					//pwdn-gpios = <&tegra_main_gpio CAM1_RST_L GPIO_ACTIVE_HIGH>;

					vana-supply = <&en_vdd_cam_hv_2v8>;
					vdig-supply = <&en_vdd_cam_1v2>;
					dovdd-supply = <&en_vdd_cam>;
					avdd-reg = "vana";
					dvdd-reg = "vdig";
					iovdd-reg = "dovdd";

					status = "okay";

					/* TODO FIS ME AND ADD THE REST OF THE MODES*/
					mode0 { //Taken from OV5693_MODE_1280X720
						mclk_khz = "24000";
						num_lanes = "2";
						tegra_sinterface = "serial_c";
						discontinuous_clk = "no";
						dpcm_enable = "false";
						cil_settletime = "0";

						active_w = "1280";
						active_h = "800";
						
						pixel_t = "bayer_bggr";
						dynamic_pixel_bit_depth = "10";
						csi_pixel_bit_depth = "10";
						
						readout_orientation = "0";
						line_length = "1752";
						inherent_gain = "1";
						mclk_multiplier = "6.67";
						pix_clk_hz = "160000000";

						gain_factor = "16";
						min_gain_val = "1.0";
						max_gain_val = "255";
						min_hdr_ratio = "1";
						max_hdr_ratio = "64";
						min_framerate = "2.787078";
						max_framerate = "120";
						min_exp_time = "22";
						max_exp_time = "358733";
					};
					ports {
						#address-cells = <1>;
						#size-cells = <0>;

						port@0 {
							reg = <0>;
							imagr1_ov5640_out3: endpoint {
								csi-port = <2>;
								bus-width = <2>;
								remote-endpoint = <&imagr1_csi_in3>;
							};
						};
					};
				};
			};

			i2c@4 {
				reg = <3>;
				i2c-mux,deselect-on-exit;
				#address-cells = <1>;
				#size-cells = <0>;
				status = "okay";

				ov5640_e@60 {
					devnode = "video4";
					compatible = "nvidia,ov5640";
					reg = <0x60>;

					/* Physical dimensions of sensor */					
					physical_w = "3.896";
					physical_h = "2.453";

					sensor_model ="ov5640";

					mclk = "extperiph3";
					clock-frequency = <24000000>;
					clocks = <&tegra_car TEGRA186_CLK_EXTPERIPH3>, <&tegra_car TEGRA186_CLK_PLLP_OUT0>;
					clock-names = "extperiph3", "pllp_grtba";
					mclk-index = <0>;
					parent-clk-index = <1>; 
					
					//pwdn-gpios  = <&gpio_i2c_0_77 7 GPIO_ACTIVE_HIGH>;
					

					fsync="slave"; //"master""slave"

					vana-supply = <&en_vdd_cam_hv_2v8>;
					vdig-supply = <&en_vdd_cam_1v2>;
					dovdd-supply = <&en_vdd_cam>;
					avdd-reg = "vana";
					dvdd-reg = "vdig";
					iovdd-reg = "dovdd";

					status = "okay";

					/* TODO FIS ME AND ADD THE REST OF THE MODES*/
					mode0 { //Taken from OV5693_MODE_1280X720
						mclk_khz = "24000";
						num_lanes = "2";
						tegra_sinterface = "serial_c";
						discontinuous_clk = "no";
						dpcm_enable = "false";
						cil_settletime = "0";

						active_w = "1280";
						active_h = "800";
						pixel_t = "bayer_bggr";
						dynamic_pixel_bit_depth = "10";
						csi_pixel_bit_depth = "10";
						//mode_type = "bayer";
//						pixel_phase = "rggb";
						
						readout_orientation = "0";
						line_length = "1752";
						inherent_gain = "1";
						mclk_multiplier = "6.67";
						pix_clk_hz = "160000000";

						gain_factor = "16";
						min_gain_val = "1.0";
						max_gain_val = "255";
						min_hdr_ratio = "1";
						max_hdr_ratio = "64";
						min_framerate = "2.787078";
						max_framerate = "120";
						min_exp_time = "22";
						max_exp_time = "358733";
					};
					ports {
						#address-cells = <1>;
						#size-cells = <0>;

						port@0 {
							reg = <0>;
							imagr1_ov5640_out4: endpoint {
								csi-port = <1>;
								bus-width = <2>;
								remote-endpoint = <&imagr1_csi_in4>;
							};
						};
					};
				};
			};

			i2c@5 {
				reg = <0>;
				i2c-mux,deselect-on-exit;
				#address-cells = <1>;
				#size-cells = <0>;
				status = "okay";

				ov5640_f@60 {
					devnode = "video5";
					compatible = "nvidia,ov5640";
					reg = <0x60>;

					/* Physical dimensions of sensor */					
					physical_w = "3.896";
					physical_h = "2.453";

					sensor_model ="ov5640";

					mclk = "extperiph3";
					clock-frequency = <24000000>;
					clocks = <&tegra_car TEGRA186_CLK_EXTPERIPH3>, <&tegra_car TEGRA186_CLK_PLLP_OUT0>;
					clock-names = "extperiph3", "pllp_grtba";
					mclk-index = <0>;
					parent-clk-index = <1>; 

 					//pwdn-gpios  = <&gpio_i2c_0_77 7 GPIO_ACTIVE_HIGH>;

					fsync="slave"; //"master""slave"

					
					dovdd-supply = <&en_vdd_cam>;
					vana-supply = <&en_vdd_cam_hv_2v8>;
					vdig-supply = <&en_vdd_cam_1v2>;
					avdd-reg = "vana";
					dvdd-reg = "vdig";
					iovdd-reg = "dovdd";


					status = "okay";

					/* TODO FIS ME AND ADD THE REST OF THE MODES*/
					mode0 { //Taken from OV5693_MODE_1280X720
						mclk_khz = "24000";
						num_lanes = "2";
						tegra_sinterface = "serial_a";
						discontinuous_clk = "no";
						dpcm_enable = "false";
						cil_settletime = "0";

						active_w = "1280";
						active_h = "800";
						pixel_t = "bayer_bggr";
						dynamic_pixel_bit_depth = "10";
						csi_pixel_bit_depth = "10";

						//mode_type = "bayer";
						//pixel_phase = "rggb";
						
						readout_orientation = "0";
						line_length = "1752";
						inherent_gain = "1";
						mclk_multiplier = "6.67";
						pix_clk_hz = "160000000";

						gain_factor = "16";
						min_gain_val = "1.0";
						max_gain_val = "255";
						min_hdr_ratio = "1";
						max_hdr_ratio = "1";
						min_framerate = "2.787078";
						max_framerate = "100";
						min_exp_time = "22";
						max_exp_time = "666666";
					};
					ports {
						#address-cells = <1>;
						#size-cells = <0>;

						port@0 {
							reg = <0>;
							imagr1_ov5640_out5: endpoint {
								csi-port = <0>;
								bus-width = <2>;
								remote-endpoint = <&imagr1_csi_in5>;
							};
						};
					};
				};
			};
		};
	};



/* camera control gpio definitions */
	tegra-camera-platform {
		compatible = "nvidia, tegra-camera-platform";

		/**
		* Physical settings to calculate max ISO BW
		*
		* num_csi_lanes = <>;
		* Total number of CSI lanes when all cameras are active
		*
		* max_lane_speed = <>;
		* Max lane speed in Kbit/s
		*
		* min_bits_per_pixel = <>;
		* Min bits per pixel
		*
		* vi_peak_byte_per_pixel = <>;
		* Max byte per pixel for the VI ISO case
		*
		* vi_bw_margin_pct = <>;
		* Vi bandwidth margin in percentage
		*
		* max_pixel_rate = <>;
		* Max pixel rate in Kpixel/s for the ISP ISO case
		*
		* isp_peak_byte_per_pixel = <>;
		* Max byte per pixel for the ISP ISO case
		*
		* isp_bw_margin_pct = <>;
		* Isp bandwidth margin in percentage
		*/
		num_csi_lanes = <12>;
		max_lane_speed = <1500000>;
		min_bits_per_pixel = <10>;
		vi_peak_byte_per_pixel = <2>;
		vi_bw_margin_pct = <25>;
		isp_peak_byte_per_pixel = <2>;
		isp_bw_margin_pct = <25>;

		/**
		 * The general guideline for naming badge_info contains 3 parts, and is as follows,
		 * The first part is the camera_board_id for the module; if the module is in a FFD
		 * platform, then use the platform name for this part.
		 * The second part contains the position of the module, ex. “rear” or “front”.
		 * The third part contains the last 6 characters of a part number which is found
		 * in the module's specsheet from the vender.
		 */
		modules {

			module0 {
				// TODO replace the last 6 with the actual module part number
				badge = "imagr1_cam0_ov5640";
				position = "bottomleft";
				orientation = "1";
				drivernode0 {
					pcl_id = "v4l2_sensor";
					devname = "OV5640 30-0060";
					proc-device-tree = "/proc/device-tree/i2c@3180000/tca9548@70/i2c@0/ov5640_a@60";
				};
			};
			module1 {
				badge = "imagr1_cam1_ov5640";
				position = "centerleft";
				orientation = "1";
				drivernode0 {
					pcl_id = "v4l2_sensor";
					devname = "OV5640 31-0060";
					proc-device-tree = "/proc/device-tree/i2c@3180000/tca9548@70/i2c@1/ov5640_b@60";
				};
			};

			module2 {
				badge = "imagr1_cam2_ov5640";
				position = "centerright";
				orientation = "1";
				drivernode0 {
					pcl_id = "v4l2_sensor";
					devname = "OV5640 32-0060";
					proc-device-tree = "/proc/device-tree/i2c@3180000/tca9548@70/i2c@2/ov5640_c@60";
				};
			};

			module3 {
				badge = "imagr1_cam3_ov5640";
				position = "topleft";
				orientation = "1";
				drivernode0 {
					pcl_id = "v4l2_sensor";
					devname = "OV5640 33-0060";
					proc-device-tree = "/proc/device-tree/i2c@3180000/tca9548@70/i2c@3/ov5640_d@60";
				};
			};
			module4 {
				badge = "imagr1_cam4_ov5640";
				position = "bottomright";
				orientation = "1";
				drivernode0 {
					pcl_id = "v4l2_sensor";
					devname = "OV5640 34-0060";
					proc-device-tree = "/proc/device-tree/i2c@3180000/tca9548@70/i2c@4/ov5640_e@60";
				};
			};

			module5 {
				badge = "imagr1_cam5_ov5640";
				position = "topright";
				orientation = "1";
				drivernode0 {
					pcl_id = "v4l2_sensor";
					devname = "OV5640 35-0060";
					proc-device-tree = "/proc/device-tree/i2c@3180000/tca9548@70/i2c@5/ov5640_f@60";
				};
			};
		};
	};

};

Any ideas?

Hi paul,
Please refer to https://elinux.org/Jetson_TX2/28.1_Camera_BringUp
https://devtalk.nvidia.com/default/topic/1033144/jetson-tx2/jetson-tx2-mipi-camera-driver-debugging-v4l2-ctl-works-fine-but-gst-streamer-failed/post/5259731/#5259731