Release 28.2.1 nvcamera-daemon

Hi,
I’m having difficulty bringing up a new sensor.

I am able to capture from it using yavta and other v4l2 apps, but the sensor is a bayer sensor, so we want to use gstreamer and nvcamerasrc to get the ISP do do the debayer.

The vendor has supplied a reference jetson image that works on 28.2.1. But when we compile the driver in to our own code base it seems that nvcamera-daemon can’t recognize it.

Any ideas where I should look?
I’ve tried loading their device tree on our system. With that I can still capture using v4l2 apps, but not gstreamer nvcamerasrc.

Worker thread ViCsiHw frameComplete start
Worker thread ViCsiHw frameStart start
NvPclPowerOn: +++++++++++
NvPclPowerOn: -----------
Using ISP A
ISP Config file did not load from cache, quering deviceLSC: LSC surface is not based on full res!
AC plugin not present: dlopen “acplugin.so”, acplugin.so: cannot open shared object file: No such file or directory
No library found, disabling AC plugin.
SCF: Error BadParameter: (propagating from src/components/stages/FaceDetectStage.cpp, function doInitializeInternal(), line 64)
SCF: Error BadParameter: (propagating from src/components/stages/AsyncStage.cpp, function asyncOrderedCommonInit(), line 123)
SCF: Error BadParameter: (propagating from src/components/stages/OrderedStage.cpp, function doInitialize(), line 194)
SCF: Error BadParameter: (propagating from src/components/stages/Stage.cpp, function initialize(), line 42)
SCF: FaceDetectStage failed to initialize
SCF: Error BadParameter: Stage failed initializing (in src/components/StageHolder.cpp, function initializeStage(), line 177)
SCF: Error BadParameter: (propagating from src/components/StageHolder.cpp, function initialize(), line 132)
SCF: Error BadParameter: (propagating from src/components/CaptureSetupEngine.cpp, function initialize(), line 75)
SCF: Error BadParameter: (propagating from src/api/Session.cpp, function initialize(), line 327)
ViCsi capture path not initialized

Worker thread ViCsiHw frameComplete stop
Worker thread ViCsiHw frameStart stop

The portion ViCsi capture path not initialized seems like the important part. What is it looking for that I may be missing?

hello phabsch,

here’s external page you may refer to, https://elinux.org/Jetson_TX2_Camera_BringUp
you may also ask your customer to share kernel and device tree patches for your reference.
thanks

Hi,
I have seen that page before, and used the steps to get through a lot of debugging. As I stated, I am able to to capture valid data using v4l2 based applications. The problem arises when I try to use nvcamerasrc.

We do have the vendor source code. I used that to get the system up and running as a v4l2 device. The difference being that we have never had the need to use the ISP before, so some of those drivers weren’t installed on our system. I tried to install all appropriate files that I could think of, but it’s not helping.

This is why I’m asking what the errors in the log above are indicating? What is nvdaemon looking for that it thinks the ViCsi path isn’t installed? We apparenlty have things hooked up and configured correctly if we can capture valid data from the camera with v4l2.

hello phabsch,

it means sensor initial sequence works if you verify sensor stream with v4l2 standard controls,
while nvcamerasrc depends-on property settings in the sensor device tree, especially the clock rates. please review your device tree settings, such as pix_clk_hz, mclk_multiplier; please refer to Sensor Driver Programming Guide for more details.
you may also share the gstreamer pipeline for reference.
thanks

I will double check the clock settings and device tree. I am a bit doubtful that I will find anything since I did manually compare the decompiled dtb files that are used on the working image and the one I compiled.
I also tried loading the tree from the working image on to our non-functional system. I could see in the filesystem the applied differences, but nvcamera-daemon still didn’t work.

Also, for the clock, the vendor uses a script that configures all clocks to maximum. I performed the same actions here and it didn’t help.

Here is the gstreamer pipeline I am running on both the functional and non-functional system:
gst-launch-1.0 -v nvcamerasrc num-buffers=10 ! 'video/x-raw(memory:NVMM),width=1352,height=762,format=I420,framerate=60/1' ! fakesink

hello phabsch,

nvcamerasrc pipeline did not support I420 formats,
you may refer to Camera Architecture Stack, nvcamerasrc works with bayer sensors.
thanks

Yes, my camera is bayer and outputs RG10. Doesn’t that gstreamer pipeline just specify the output format of the ISP?
It works on my reference system:

Here are the logs from gstreamer:

root@jetson-tx2:~# gst-launch-1.0 -v nvcamerasrc num-buffers=10 ! ‘video/x-raw(memory:NVMM),width=1352,height=762,format=I420,framerate=60/1’ ! fakesink silent=0
Setting pipeline to PAUSED …

Available Sensor modes :
4056 x 3040 FR=60.000000 CF=0x1009208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
2024 x 1144 FR=60.000000 CF=0x1009208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
1352 x 762 FR=60.000000 CF=0x1009208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
Pipeline is live and does not need PREROLL …

NvCameraSrc: Trying To Set Default Camera Resolution. Selected sensorModeIndex = 2 WxH = 1352x762 FrameRate = 60.000000 …

/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = event ******* (fakesink0:sink) E (type: stream-start (10254), GstEventStreamStart, stream-id=(string)48403087d7bfd2239eb4081ce9cea21d, flags=(GstStreamFlags)GST_STREAM_FLAG_NONE, group-id=(uint)1;) 0x55949710f0
Setting pipeline to PLAYING …
New clock: GstSystemClock
/GstPipeline:pipeline0/GstNvCameraSrc:nvcamerasrc0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1352, height=(int)762, format=(string)I420, framerate=(fraction)60/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1352, height=(int)762, format=(string)I420, framerate=(fraction)60/1
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = event ******* (fakesink0:sink) E (type: caps (12814), GstEventCaps, caps=(GstCaps)“video/x-raw(memory:NVMM),\ width=(int)1352,\ height=(int)762,\ format=(string)I420,\ framerate=(fraction)60/1”;) 0x55949711d0
/GstPipeline:pipeline0/GstFakeSink:fakesink0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1352, height=(int)762, format=(string)I420, framerate=(fraction)60/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1352, height=(int)762, format=(string)I420, framerate=(fraction)60/1
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = event ******* (fakesink0:sink) E (type: segment (17934), GstEventSegment, segment=(GstSegment)“GstSegment, flags=(GstSegmentFlags)GST_SEGMENT_FLAG_NONE, rate=(double)1, applied-rate=(double)1, format=(GstFormat)GST_FORMAT_TIME, base=(guint64)0, offset=(guint64)0, start=(guint64)0, stop=(guint64)18446744073709551615, time=(guint64)0, position=(guint64)0, duration=(guint64)18446744073709551615;”;) 0x5594971240
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = preroll *******
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain ******* (fakesink0:sink) (808 bytes, dts: 0:00:00.276534304, pts: 0:00:00.276534304, duration: none, offset: -1, offset_end: -1, flags: 00000040 discont , meta: none) 0x7f8400e080
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain ******* (fakesink0:sink) (808 bytes, dts: 0:00:00.286429472, pts: 0:00:00.286429472, duration: none, offset: -1, offset_end: -1, flags: 00000000 , meta: none) 0x7f8400e190
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain ******* (fakesink0:sink) (808 bytes, dts: 0:00:00.302640512, pts: 0:00:00.302640512, duration: none, offset: -1, offset_end: -1, flags: 00000000 , meta: none) 0x7f8400e2a0
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain ******* (fakesink0:sink) (808 bytes, dts: 0:00:00.319368352, pts: 0:00:00.319368352, duration: none, offset: -1, offset_end: -1, flags: 00000000 , meta: none) 0x7f8400e3b0
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain ******* (fakesink0:sink) (808 bytes, dts: 0:00:00.337600384, pts: 0:00:00.337600384, duration: none, offset: -1, offset_end: -1, flags: 00000000 , meta: none) 0x7f8400e4c0
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain ******* (fakesink0:sink) (808 bytes, dts: 0:00:00.354288800, pts: 0:00:00.354288800, duration: none, offset: -1, offset_end: -1, flags: 00000000 , meta: none) 0x7f8400e5d0
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain ******* (fakesink0:sink) (808 bytes, dts: 0:00:00.369906784, pts: 0:00:00.369906784, duration: none, offset: -1, offset_end: -1, flags: 00000000 , meta: none) 0x7f8400e6e0
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain ******* (fakesink0:sink) (808 bytes, dts: 0:00:00.388552064, pts: 0:00:00.388552064, duration: none, offset: -1, offset_end: -1, flags: 00000000 , meta: none) 0x7f8400e7f0
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain ******* (fakesink0:sink) (808 bytes, dts: 0:00:00.406457216, pts: 0:00:00.406457216, duration: none, offset: -1, offset_end: -1, flags: 00000000 , meta: none) 0x7f8400e900
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain ******* (fakesink0:sink) (808 bytes, dts: 0:00:00.425618592, pts: 0:00:00.425618592, duration: none, offset: -1, offset_end: -1, flags: 00000000 , meta: none) 0x7f8400ea10
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = event ******* (fakesink0:sink) E (type: eos (28174), ) 0x55949712b0
Got EOS from element “pipeline0”.
Execution ended after 0:00:00.426453472
Setting pipeline to PAUSED …
Setting pipeline to READY …
Setting pipeline to NULL …
Freeing pipeline …

And here is part of the output from nvcamera-daemon showing that the input is 10-bit bayer data:

Using ISP A
LSC: LSC surface is not based on full res!
AC plugin not present: dlopen “acplugin.so”, acplugin.so: cannot open shared object file: No such file or directory
No library found, disabling AC plugin.
Worker thread CaptureDispatcher start
NvPclSettingsUpdate: Sending Updated Settings through PCL
NvPclSettingsApply: Applying last settings through PCL
apply:+++++++++++++++++++++++
writeMode: Target mode Id(2): Resolution 1352x762
setActiveBufferMemory: 2
INPUT: Width 1352 Height 762 pixelformat RG10
writeFrameRate: INPUT frameLength:3102, frameRate:60.000000
writeGain: INPUT gainCtrl:100 analogGain:1.000000
writeExposure: INPUT coarseTime:3092, expTime:0.016608
updateOutputSettings: OUTPUT frameLength:3102, frameRate:60.016186
updateOutputSettings: OUTPUT analogGain:1.000000
updateOutputSettings: OUTPUT coarseTime:3092, expTime:0.016608
apply:-----------------------
NvPclSettingsApply: Reading PCL settings
PowerServiceHw:addRequest: table size: before: 0, after:1
request table for VI 0:
req[0]: output Bpp=10
req[0]: sensor pixelRate=840000000 pixels/sec
req[0]: input width=1352, input height=762, input Bpp=10
pixels per clock=8
req[0]: input width=1352, input height=762, input Bpp=10
req[0]: output width=1352, output height=762, output Bpp=10
req[0]: input fps=60
req[0]: guID=2, stage type=SensorCapture
req[0]: clock=105000000 Hz, iso bw=2147483647 KB/s, non-iso bw=0 KB/s
req[900]: timeout=0
PowerServiceHw:addRequest: table size: before: 0, after:1
request table for CSI 0:
req[0]: sensor pixelRate=840000000 pixels/sec
req[0]: input width=1352, input height=762, input Bpp=10
pixels per clock=8
req[0]: input width=1352, input height=762, input Bpp=10
req[0]: output width=1352, output height=762, output Bpp=10
req[0]: input fps=60
req[0]: guID=2, stage type=SensorCapture
req[0]: clock=131250000 Hz, iso bw=0 KB/s, non-iso bw=0 KB/s
req[900]: timeout=0
PowerServiceHwVi:setIso: m_bwVal_Iso=2147483647
PowerServiceHw:setClock: PowerServiceHw[1]: requested_clock_Hz=225000000
PowerServiceHw:setClock: PowerServiceHw[0]: requested_clock_Hz=225000000
PowerServiceCore:setCameraBw: totalIsoBw=2147483647
SCF: Error InvalidState: NonFatal ISO BW requested not set. Requested = 2147483647 Set = 3925327 (in src/services/power/PowerServiceCore.cpp, function setCameraBw(), line 653)
NvPclSettingsUpdate: Sending Updated Settings through PCL
NvPclSettingsApply: Applying last settings through PCL
apply:+++++++++++++++++++++++
apply:-----------------------
NvPclSettingsApply: Reading PCL settings
No output buffers for 2

No output buffers for 1

InstructionList:

  • GraphSettings
    | SensorMode: 1352x762 BayerS16RGGB 60.0fps
    | output 0: 1352x762 BL Y8 420

  • Instruction List
    | id: 0

    • 0: CCDataSetupStage
      | EstimatedIspOutLatencyFrames: 5
      | NumConcurrentCaptures: 1
      | UnprocessedYuvBufferMask: 0

    • 1: ACSynchronizeStage

    • 2: AeAfApplyStage

    • 3: AcPluginStage
      | operation: opApply

    • 4: AcMergeStage
      | IspIn: [1352, 762]
      | IspOut0: [1352, 762]
      | IspOut1: [0, 0]
      | IspOut2: [640, 362]

    • 5: StatsBufferAcquireStage
      | Buffer Index: 1
      | BufferRequirements: 640x362 Pitch Y8 420

    • 6: TempBufferAcquireStage
      | Buffer Index: 2
      | BufferRequirements: 1352x1 Pitch NonColor8

    • 7: SensorISPCaptureStage
      | Source GUID: 2
      | Output A Buffer: 0
      | Output Thumb Buffer: 1
      | SensorMetadata Buffer: 2

    • 8: StatsUpdateStage
      | Outut Meta Buffer: 2

    • 9: BufferReturnStage
      | Output A Buffer: 2

    • 10: AcPluginStage

      | operation: opAnalyze

    • 11: AfAnalysisStage

    • 12: MonitorStage

    • 13: ExifStage

    • 14: MakerNoteStage

    • 15: BufferReturnStage
      | Output A Buffer: 0

    • 16: MetadataReturnStage

    • 17: PerfStatsStage

Created fiber 0x7f68000b20 for CC 101 globalID 101 session 2Thread 1 is working on CC 101 session 2 globalID 101 step 0

CC 101 session 2 completed step 0 in fiber 0x7f68000b20
cc 101(0) session 2 runCount=0 runIspOut=0, latest ccId=0
CC 101 session 2 completed step 1 in fiber 0x7f68000b20
NV AE and AfApply algorithms are active.
CC 101 session 2 completed step 2 in fiber 0x7f68000b20
CC 101 session 2 completed step 3 in fiber 0x7f68000b20
Thread 2 is working on CC 102 session 2 globalID 102 step 0
Created fiber 0x7f68000dd0 for CC 102 globalID 102 session 2
CC 102 session 2 completed step 0 in fiber 0x7f68000dd0
cc 102(1) session 2 runCount=1 runIspOut=0, latest ccId=0
CC 102 session 2 completed step 1 in fiber 0x7f68000dd0
NV AE and AfApply algorithms are active.
CC 102 session 2 completed step 2 in fiber 0x7f68000dd0
CC 102 session 2 completed step 3 in fiber 0x7f68000dd0
CC 102 session 2 stalled step 4 in fiber 0x7f68000dd0
FiberScheduler: cc 102, session 2 fiber 0x7f68000dd0 not ready to execute stalled on 0x7facc553b0 stage…

hello phabsch,

please have a try to change the format as NV12.
for example,

$ gst-launch-1.0 -v nvcamerasrc num-buffers=10 ! ‘video/x-raw(memory:NVMM),width=1352,height=762,format=NV12,framerate=60/1’ ! fakesink

Interesting. On the reference system that doesn’t work if I use a framerate of 60/1 and NV12, I have to use 30/1.
Anyways, it doesn’t change the behaviour on the other system, I still get the "ViCsi capture path not initialized"
error on my system.

hello phabsch,

may I know what’s the difference between workable and failed one.
could you please share all details of environment setups.
thanks

That’s what I’m trying to figure out. At this point there are very few differences. I can see we have a different version of libc, so that may point to a difference in toolchain, but would that account for an error such as this?

That is why I ask what set of circumstances lead to " ViCsi capture path not initialized? What is the nvcamera-daemon looking for that would print out this message?

hello phabsch,

it’ll shown such message (not an error) while there’s no captures yet on this ViCsiHw.

What information can I provide that would help you give me clues where to look?
The reference system is compiled with yocto (thud).
Our system is compiled with buildroot with an old TX1 toolchain (linaro gcc 5.3).

We cannot update our toolchain for various reasons.
Could the toolchain be causing issues? I see there is a different version of libc between them.

That being said, we had stripped out some driver files before since they weren’t needed (we didn’t have nvcamera-daemon on our system until now).
Is there something that could be missing that nvcamera-daemon is looking for? I don’t see it complaining about missing module files or anything like that.

I tried using nvgstcapture-1.0 and got a similar result. I was hoping argus might provide better luck:
Note: it does know which sensor to use and gets the camera parameters and other various details.

=== Connection 7F878A71E0 established ===
Thread 1 getting next capture
Thread 1 is waiting
Thread 2 getting next capture
Thread 2 is waiting
Thread 3 getting next capture
Thread 3 is waiting
Thread 4 getting next capture
Thread 4 is waiting
Thread 5 getting next capture
Thread 5 is waiting
Thread 6 getting next capture
Thread 6 is waiting
Thread 7 getting next capture
Thread 7 is waiting
Thread 9 getting next capture
Thread 9 is waiting
Thread 10 getting next capture
Thread 10 is waiting
Thread 12 getting next capture
Thread 12 is waiting
Thread 8 getting next capture
Thread 8 is waiting
Thread 11 getting next capture
Thread 11 is waiting
Starting services…
Worker thread IspHw statsComplete start
Worker thread IspHw frameComplete start
Worker thread CaptureScheduler checkFramePending start
Worker thread CaptureScheduler frameStart start
Worker thread V4L2CaptureScheduler checkCaptureComplete start
Worker thread V4L2CaptureScheduler issueCaptures start
Worker thread PS handleRequests start
getInstance: s_instance(0x7f81680260)
getInstance: s_instance(0x7f81680260)
subscribe: create SensorType(gyroscope) sensor(0x7f81680460)
subscribe: create SensorType(accelerometer) sensor(0x7f81680d50)
AC plugin not present: dlopen “acplugin.so”, acplugin.so: cannot open shared object file: No such file or directory
Services are started
NvPclSetHotplugCallback: ++++++++++++++++++++++
---- Imager: Calibration blob file handling supported in this build ----
NvPclHwGetModuleList: OFParserListModules Succeeded
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwPrintModuleDefinition – Name: imx477_center_liimx477
NvPclHwPrintModuleDefinition – Position: 2
NvPclHwPrintModuleDefinition – CalibrationData Found: 1
NvPclHwPrintCameraSubModule – HwCamSubModule[0].Name: v4l2_sensor
NvPclHwPrintCameraSubModule – HwCamSubModule[0].DevName: imx477 2-0010
NvPclHwGetModuleList: OFParserListModules Succeeded
NvPclModuleListInitialize: NvPclModule list[0]: imx477_center_liimx477 position2
NvPclHwScanExternalCameras – adding video0 to discover list
NvPclHwScanExternalCameras – adding video0 to discover list
initialize: /dev/video0
queryControls: 10100736 control Frame Length
queryControls: 10100737 control Coarse Time
queryControls: 10100738 control Coarse Time Short
queryControls: 10100739 control Group Hold
queryControls: 10100740 control HDR enable
queryControls: 10100745 control Gain
queryControls: 10100836 control Bypass Mode
queryControls: 10100837 control Override Enable
queryControls: 10100838 control Height Align
queryControls: 10100839 control Size Align
queryControls: 10100840 control Write ISP format
queryControls: 10100841 control Sensor Signal Properties
queryControls: 10100842 control Sensor Image Properties
queryControls: 10100843 control Sensor Control Properties
queryControls: 10100844 control Sensor DV Timings
queryControls: 10100866 control Sensor Modes
queryControls: 10100936 control Passthrough register address
queryControls: 10100937 control Passthrough register data value
Ioctl failed: Invalid argument
NvPclHwScanExternalCameras – adding video0 to discover list
initialize: /dev/video0
queryControls: 10100736 control Frame Length
queryControls: 10100737 control Coarse Time
queryControls: 10100738 control Coarse Time Short
queryControls: 10100739 control Group Hold
queryControls: 10100740 control HDR enable
queryControls: 10100745 control Gain
queryControls: 10100836 control Bypass Mode
queryControls: 10100837 control Override Enable
queryControls: 10100838 control Height Align
queryControls: 10100839 control Size Align
queryControls: 10100840 control Write ISP format
queryControls: 10100841 control Sensor Signal Properties
queryControls: 10100842 control Sensor Image Properties
queryControls: 10100843 control Sensor Control Properties
queryControls: 10100844 control Sensor DV Timings
queryControls: 10100866 control Sensor Modes
queryControls: 10100936 control Passthrough register address
queryControls: 10100937 control Passthrough register data value
Ioctl failed: Invalid argument
getHotplugMonitor: Getting hotplug monitor instance
initializeHotplug++
hotPlugfunc ++
addWatch: Watch added wd=‘1’
CheckProcDTExists: INFO: accessing /proc/device-tree/tegra-virtual-camera-platform/modules; No such file or directory
OFParserGetVirtualDevice: NVIDIA Camera virtual enumerator not found in proc device-tree
setHotplugCallback: Registered new callback client
NvPclSetHotplugCallback: ----------------------
hotPlugfunc: reading from inotify FD, Thread waiting
NvPclOpen: ++++++++++++++++++++++
NvPclStateControllerOpen: Found GUID 2 match at index[0]
NvPclHwInitializeModule: allocate overrides pathname @ 0x7f81709c00
NvPclHwInitializeModule: allocate overrides pathname @ 0x7f81709c90
NvPclHwInitializeModule: allocate overrides pathname @ 0x7f81709d20
NvPclHwInitializeModule: allocate overrides pathname @ 0x7f81701110
NvPclHwInitializeModule: allocate overrides pathname @ 0x7f817011a0
NvPclHwInitializeModule: allocate overrides pathname @ 0x7f81701230
LoadOverridesFile: looking for override file [/Calib/camera_override.isp] 1/16CheckOverridesPermissions: cannot stat file [/Calib/camera_override.isp]
LoadOverridesFile: looking for override file [/data/nvcam/settings/camera_overrides.isp] 2/16CheckOverridesPermissions: cannot stat file [/data/nvcam/settings/camera_overrides.isp]
LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/camera_overrides.isp] 3/16CheckOverridesPermissions: cannot stat file [/opt/nvidia/nvcam/settings/camera_overrides.isp]
LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/camera_overrides.isp] 4/16CheckOverridesPermissions: cannot stat file [/var/nvidia/nvcam/settings/camera_overrides.isp]
LoadOverridesFile: looking for override file [/data/nvcam/camera_overrides.isp] 5/16CheckOverridesPermissions: cannot stat file [/data/nvcam/camera_overrides.isp]
LoadOverridesFile: looking for override file [/data/nvcam/settings/imx477_center_liimx477.isp] 6/16CheckOverridesPermissions: cannot stat file [/data/nvcam/settings/imx477_center_liimx477.isp]
LoadOverridesFile: looking for override file [/opt/nvidia/nvcam/settings/imx477_center_liimx477.isp] 7/16CheckOverridesPermissions: cannot stat file [/opt/nvidia/nvcam/settings/imx477_center_liimx477.isp]
LoadOverridesFile: looking for override file [/var/nvidia/nvcam/settings/imx477_center_liimx477.isp] 8/16CheckOverridesPermissions: cannot stat file [/var/nvidia/nvcam/settings/imx477_center_liimx477.isp]
---- imager: No override file found. ----
Imager: looking for override file [/mnt/factory/camera/factory.bin] 1/16
Imager: looking for override file [/Calib/factory.bin] 2/16
Imager: looking for override file [/Calib/calibration.bin] 3/16
Imager: looking for override file [(null)] 4/16
Imager: looking for override file [(null)] 5/16
Imager: looking for override file [(null)] 6/16
Imager: looking for override file [(null)] 7/16
Imager: looking for override file [(null)] 8/16
Imager: looking for override file [(null)] 9/16
Imager: looking for override file [(null)] 10/16
Imager: looking for override file [(null)] 11/16
Imager: looking for override file [(null)] 12/16
Imager: looking for override file [(null)] 13/16
Imager: looking for override file [(null)] 14/16
Imager: looking for override file [(null)] 15/16
Imager: looking for override file [(null)] 16/16
Imager: looking for override file [/data/nvcam/settings/factory.bin] 1/16
Imager: looking for override file [/data/nvcam/settings/imx477_center_liimx477.bin] 2/16
Imager: looking for override file [/opt/nvidia/nvcam/settings/imx477_center_liimx477.bin] 3/16
Imager: looking for override file [/var/nvidia/nvcam/settings/imx477_center_liimx477.bin] 4/16
Imager: looking for override file [(null)] 5/16
Imager: looking for override file [(null)] 6/16
Imager: looking for override file [(null)] 7/16
Imager: looking for override file [(null)] 8/16
Imager: looking for override file [(null)] 9/16
Imager: looking for override file [(null)] 10/16
Imager: looking for override file [(null)] 11/16
Imager: looking for override file [(null)] 12/16
Imager: looking for override file [(null)] 13/16
Imager: looking for override file [(null)] 14/16
Imager: looking for override file [(null)] 15/16
Imager: looking for override file [(null)] 16/16
NvPclCreateDriver: Found NvPcl Driver Hal dev_name match (v4l2_sensor)
NvPclCreateDriver: Found a Driver name match (v4l2_sensor)
NvPclConnectDrivers: hImager was NULL, creating new imager
NvPclInitializeDrivers: v4l2_sensor ++++++++++++++++++
OFDPropertyGetString: could not read property [devnode-bus]
initialize: imx477 2-0010
queryControls: 10100736 control Frame Length
queryControls: 10100737 control Coarse Time
queryControls: 10100738 control Coarse Time Short
queryControls: 10100739 control Group Hold
queryControls: 10100740 control HDR enable
queryControls: 10100745 control Gain
queryControls: 10100836 control Bypass Mode
queryControls: 10100837 control Override Enable
queryControls: 10100838 control Height Align
queryControls: 10100839 control Size Align
queryControls: 10100840 control Write ISP format
queryControls: 10100841 control Sensor Signal Properties
queryControls: 10100842 control Sensor Image Properties
queryControls: 10100843 control Sensor Control Properties
queryControls: 10100844 control Sensor DV Timings
queryControls: 10100866 control Sensor Modes
queryControls: 10100936 control Passthrough register address
queryControls: 10100937 control Passthrough register data value
Ioctl failed: Invalid argument
OFDPropertyGetString: could not read property [use_decibel_gain]
OFDPropertyGetString: could not read property [use_sensor_mode_id]
OFDPropertyCopyToLong: could not read property [has-eeprom]
Control Fuse ID not found
Control OTP Data not found
Control Frame Rate not found
Control Exposure not found
findCustomCids: calculated MaxCoarseDiff 10
queryPixelFormats: type: 1, pixelformat 0x30314752 “RG10”
Ioctl failed: Invalid argument
Ioctl failed: Invalid argument
Ioctl failed: Invalid argument
Ioctl failed: Invalid argument
Ioctl failed: Invalid argument
Ioctl failed: Invalid argument
Ioctl failed: Invalid argument
Ioctl failed: Invalid argument
Ioctl failed: Invalid argument
Ioctl failed: Invalid argument
queryFormatSizes: Discrete frameSize 4056x3040
queryFormatSizes: Discrete frameSize 2024x1144
queryFormatSizes: Discrete frameSize 1352x762
Ioctl failed: Invalid argument
Ioctl failed: Invalid argument
OFDPropertyGetString: could not read property [type]
loadSubType: Sensor type missing in DT, 199
OFDPropertyCopyToLongLong: could not read property [mode0.exp_time_1h]
OFDPropertyCopyToFloat: could not read property [mode0.gain_step_pitch]
OFDPropertyGetString: could not read property [mode0.x_start]
OFDPropertyGetString: could not read property [mode0.y_start]
OFDPropertyGetString: could not read property [mode0.x_end]
OFDPropertyGetString: could not read property [mode0.y_end]
OFDPropertyGetString: could not read property [mode0.h_scaling]
OFDPropertyGetString: could not read property [mode0.v_scaling]
OFDPropertyCopyToLongLong: could not read property [mode1.exp_time_1h]
OFDPropertyCopyToFloat: could not read property [mode1.gain_step_pitch]
OFDPropertyGetString: could not read property [mode1.x_start]
OFDPropertyGetString: could not read property [mode1.y_start]
OFDPropertyGetString: could not read property [mode1.x_end]
OFDPropertyGetString: could not read property [mode1.y_end]
OFDPropertyGetString: could not read property [mode1.h_scaling]
OFDPropertyGetString: could not read property [mode1.v_scaling]
OFDPropertyCopyToLongLong: could not read property [mode2.exp_time_1h]
OFDPropertyCopyToFloat: could not read property [mode2.gain_step_pitch]
OFDPropertyGetString: could not read property [mode2.x_start]
OFDPropertyGetString: could not read property [mode2.y_start]
OFDPropertyGetString: could not read property [mode2.x_end]
OFDPropertyGetString: could not read property [mode2.y_end]
OFDPropertyGetString: could not read property [mode2.h_scaling]
OFDPropertyGetString: could not read property [mode2.v_scaling]
initialize: Loaded Driver: 3 Modes Available--------------
NvPclInitializeDrivers: v4l2_sensor ------------------
NvPclOpen: ----------------------
ISP Config file did not load from cache, quering deviceLSC: LSC surface is not based on full res!
CameraProvider result: provider=0x7f8170a300, shim=0x7f816fab30, status=0, rpc status=1, size=9
sourceRegistry[0] assigned

ispRegistry[0] assigned

Using Source GUID 2
Worker thread ViCsiHw frameComplete start
Worker thread ViCsiHw frameStart start
NvPclPowerOn: +++++++++++
NvPclPowerOn: -----------
Using ISP A
ISP Config file did not load from cache, quering deviceLSC: LSC surface is not based on full res!
AC plugin not present: dlopen “acplugin.so”, acplugin.so: cannot open shared object file: No such file or directory
No library found, disabling AC plugin.
SCF: Error BadParameter: (propagating from src/components/stages/FaceDetectStage.cpp, function doInitializeInternal(), line 64)
SCF: Error BadParameter: (propagating from src/components/stages/AsyncStage.cpp, function asyncOrderedCommonInit(), line 123)
SCF: Error BadParameter: (propagating from src/components/stages/OrderedStage.cpp, function doInitialize(), line 194)
SCF: Error BadParameter: (propagating from src/components/stages/Stage.cpp, function initialize(), line 42)
SCF: FaceDetectStage failed to initialize
SCF: Error BadParameter: Stage failed initializing (in src/components/StageHolder.cpp, function initializeStage(), line 177)
SCF: Error BadParameter: (propagating from src/components/StageHolder.cpp, function initialize(), line 132)
SCF: Error BadParameter: (propagating from src/components/CaptureSetupEngine.cpp, function initialize(), line 75)
SCF: Error BadParameter: (propagating from src/api/Session.cpp, function initialize(), line 327)
ViCsi capture path not initialized

Worker thread ViCsiHw frameComplete stop
Worker thread ViCsiHw frameStart stop
NvPclPowerOff: +++++++++++
NvPclPowerOff: -----------
SCF: Error BadParameter: (propagating from src/api/CameraDriver.cpp, function createSession(), line 547)
(Argus) Error BadParameter: (propagating from src/api/CaptureSessionImpl.cpp, function initialize(), line 112)
(Argus) Error BadParameter: (propagating from src/api/CameraProviderImpl.cpp, function createCaptureSession(), line 234)
(NvCameraUtils) Error InvalidState: Mutex not initialized (/dvs/git/dirty/git-master_linux/camera/argus/src/api/CaptureSessionImpl.cpp:171) (in Mutex.cpp, function lock(), line 79)
(Argus) Error InvalidState: Element not found (in /dvs/git/dirty/git-master_linux/camera/utils/nvcamerautils/inc/Vector.h, function remove(), line 172)
(NvCameraUtils) Error InvalidState: Mutex has not been initialized (in Mutex.cpp, function unlock(), line 88)
/== CLEANUP 0x7f816fab30 ==
Destroying real provider 0x7f8170a300
Stopping services…
Worker thread CaptureScheduler frameStart stop
Worker thread CaptureScheduler checkFramePending stop
Worker thread IspHw statsComplete stop
Worker thread IspHw frameComplete stop
Worker thread V4L2CaptureScheduler issueCaptures stop
Worker thread V4L2CaptureScheduler checkCaptureComplete stop
NvPclClose: ++++++++++++++++++++++
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7f81701110
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7f817011a0
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7f81701230
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7f81709c00
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7f81709c90
NvPclCloseModuleDrivers: deallocate/free overrides pathname @ 0x7f81709d20
NvPclStateControllerClose: Module imx477_center_liimx477 closed
NvPclClose: ----------------------
NvPclShutdown: ++++++++++++++++++++++
NvPclModuleListShutdown: Client still conntected, skipping shutdown
NvPclShutdown: ----------------------
Worker thread PS handleRequests stop
unsubscribe: gyroscope sensor(0x7f81680460)
unsubscribe: accelerometer sensor(0x7f81680d50)
Services are stopped
closeInstance: ms_instance((nil))
NvPclRemoveHotplugCallback: ++++++++++++++++++++++
getHotplugMonitor: Getting hotplug monitor instance
shutdownHotplug: Requesting thread exit
hotPlugfunc: Read 16 bytes from inotify FD
hotPlugfunc: A File was Modified 00008000 NAME : CREATE : 00000100, DELETE : 00000200 IGNORED : 00008000 CLOSE_WRITE : 00000008
hotPlugfunc: Exit thread
hotPlugfunc: close failure error: ‘Bad file descriptor’ (9)
hotPlugfunc –
shutdownHotplug – : shutdown of hotplug is complete
Removed callback client
NvPclRemoveHotplugCallback: ----------------------
FiberScheduler: shutting down; 0 fibers still in map

FiberScheduler: thread 1 exiting
FiberScheduler: thread 3 exiting
FiberScheduler: thread 4 exiting
FiberScheduler: thread 5 exiting
FiberScheduler: thread 6 exiting
FiberScheduler: thread 9 exiting
FiberScheduler: thread 12 exiting
FiberScheduler: thread 8 exiting
FiberScheduler: thread 11 exiting
FiberScheduler: thread 2 exiting
FiberScheduler: thread 12 has been joined
FiberScheduler: thread 10 exiting
FiberScheduler: thread 7 exiting
FiberScheduler: thread 10 has been joined
FiberScheduler: thread 9 has been joined
FiberScheduler: thread 11 has been joined
FiberScheduler: thread 8 has been joined
FiberScheduler: thread 6 has been joined
FiberScheduler: thread 5 has been joined
FiberScheduler: thread 4 has been joined
FiberScheduler: thread 3 has been joined
FiberScheduler: thread 7 has been joined
FiberScheduler: thread 2 has been joined
FiberScheduler: thread 1 has been joined
== CLEANUP DONE ==/
(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 7F878A71E0 closed ===
Cleaning up 0 requests…
Cleaning up 0 queues…
Cleaning up 0 streams…
Cleaning up 0 stream settings…
=== Connection 7F878A71E0 cleaned up ===

hello phabsch,

you’ll need nvcamera-daemon service to enable camera stream with Argus or nvcamerasrc plugin.

Thanks. I figured argus would require nvcamera-deamon but I was hoping that it would provide more information as to what is going wrong.

Do you have any thoughts about my toolchain question above?
Also, are there any more verbose logs or debug enabled binaries that would provide me with more details as to what is misconfigured?

hello phabsch,

there’s debug flags you may assign to enable debug logs. for example, export enableCamScfLogs=5
you may also refer to external page for reference, https://elinux.org/Jetson_TX2_Camera_BringUp.
thanks

I already had those debug flags enabled in the logs I provided above.

Hi Jerry,

I am working with phabsch. I am also curious why we have this error in the log:

SCF: Error BadParameter:  (propagating from src/components/stages/FaceDetectStage.cpp, function doInitializeInternal(), line 64)
SCF: Error BadParameter:  (propagating from src/components/stages/AsyncStage.cpp, function asyncOrderedCommonInit(), line 123)
SCF: Error BadParameter:  (propagating from src/components/stages/OrderedStage.cpp, function doInitialize(), line 194)
SCF: Error BadParameter:  (propagating from src/components/stages/Stage.cpp, function initialize(), line 42)

We are just doing camera image capture, why SCF will complain about FaceDetection bad parameters? What is SCF? Which libraries implement the SCF logic?

Thanks

hello dk1900, phabsch,

please refer to Camera Architecture Stack, SCF is one of the software stack in [Camera Core] block.
there’re several components about camera functionality, you should ignore FaceDetectStage errors since it’s not related to your issue.

I’ve notice there’re some failure about I/O controls,

Ioctl failed: Invalid argument

let’s narrow down the issue, could you please confirm sensor streaming by enable v4l2 IOCTL for verification.
thanks