Hello ,
We have two imx415 sensors connected to Tx2 with custom board.
Cameras can work individualy but when we connect them together sometimes it works sometimes it gave errors.
These are output log from : journalctl -u nvargus-daemon.service
Feb 22 15:46:36 4-4-1 systemd[1]: Started Argus daemon.
Feb 22 15:46:38 4-4-1 startargus.sh[6852]: === NVIDIA Libargus Camera Service (0.97.3)=== Listening for connections…=== Visra[7357]: Connection established (7F80A431D0)OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module0
Feb 22 15:46:38 4-4-1 startargus.sh[6852]: OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module2
Feb 22 15:46:38 4-4-1 startargus.sh[6852]: NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
Feb 22 15:46:38 4-4-1 startargus.sh[6852]: NvPclHwGetModuleList: No module data found
Feb 22 15:46:38 4-4-1 startargus.sh[6852]: NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
Feb 22 15:46:38 4-4-1 startargus.sh[6852]: NvPclHwGetModuleList: No module data found
Feb 22 15:46:38 4-4-1 startargus.sh[6852]: OFParserGetVirtualDevice: NVIDIA Camera virtual enumerator not found in proc device-tree
Feb 22 15:46:38 4-4-1 startargus.sh[6852]: ---- imager: Found override file [/var/nvidia/nvcam/settings/imx415_bottom.isp]. ----
Feb 22 15:46:38 4-4-1 startargus.sh[6852]: CAM: serial no file already exists, skips storing againLSC: LSC surface is not based on full res!
Feb 22 15:46:38 4-4-1 startargus.sh[6852]: ---- imager: Found override file [/var/nvidia/nvcam/settings/imx415_top.isp]. ----
Feb 22 15:46:38 4-4-1 startargus.sh[6852]: CAM: serial no file already exists, skips storing againLSC: LSC surface is not based on full res!
Feb 22 15:46:44 4-4-1 startargus.sh[6852]: === Visra[7357]: CameraProvider initialized (0x7f7cccee50)CAM: serial no file already exists, skips storing againLSC: LSC surface is not based on full res!
Feb 22 15:46:45 4-4-1 startargus.sh[6852]: NvViErrorDecode Stream 0.0 failed: ts 27104346368 frame 4318 error 4 data 0x04470200
Feb 22 15:46:45 4-4-1 startargus.sh[6852]: NvViErrorDecode CaptureError: ChanselFault (4)
Feb 22 15:46:45 4-4-1 startargus.sh[6852]: NvViErrorDecode See https://wiki.nvidia.com/wmpwiki/index.php/Camera_Debugging/CaptureError_debugging for more information and links to documents.
Feb 22 15:46:45 4-4-1 startargus.sh[6852]: ChanselFault : 0x04470200
Feb 22 15:46:45 4-4-1 startargus.sh[6852]: PIXEL_SHORT_LINE [ 9]: 1
Feb 22 15:46:45 4-4-1 startargus.sh[6852]: A line ends with fewer pixels than expected.
Feb 22 15:46:45 4-4-1 startargus.sh[6852]: Current line in frame [31:16]: 1095
Feb 22 15:46:45 4-4-1 startargus.sh[6852]:
Feb 22 15:46:45 4-4-1 startargus.sh[6852]: captureErrorCallback Stream 0.0 capture 1 failed: ts 27104346368 frame 4318 error 4 data 0x04470200
Feb 22 15:46:45 4-4-1 startargus.sh[6852]: SCF: Error BadValue: timestamp cannot be 0 (in src/services/capture/NvViCsiHw.cpp, function waitCsiFrameStart(), line 630)
Feb 22 15:46:45 4-4-1 startargus.sh[6852]: SCF: Error BadValue: (propagating from src/common/Utils.cpp, function workerThread(), line 116)
Feb 22 15:46:45 4-4-1 startargus.sh[6852]: SCF: Error BadValue: Worker thread ViCsiHw frameStart failed (in src/common/Utils.cpp, function workerThread(), line 133)
Feb 22 15:46:46 4-4-1 startargus.sh[6852]: SCF: Error Timeout: ISP port 0 timed out! (in src/services/capture/NvIspHw.cpp, function waitIspFrameEnd(), line 478)
Feb 22 15:46:50 4-4-1 startargus.sh[6852]: === Visra[7357]: Connection closed (7F80A431D0)=== Visra[7357]: WARNING: CameraProvider was not destroyed before client connection terminated.=== Visra[7357]: The client may have abnormally terminated. Destroying CameraProvider…=== Visra[7357]: CameraProvider destroyed (0x7f7cccee50)=== Visra[7357]: WARNING: Cleaning up 1 outstanding requests…=== Visra[7357]: WARNING: Cleaning up 1 outstanding streams…SCF: Error InvalidState: 1 buffers still pending during EGLStreamProducer destruction (propagating from src/services/gl/EGLStreamProducer.cpp, function freeBuffers(), line 306)
Feb 22 15:46:50 4-4-1 startargus.sh[6852]: SCF: Error InvalidState: (propagating from src/services/gl/EGLStreamProducer.cpp, function ~EGLStreamProducer(), line 50)
Feb 22 15:46:50 4-4-1 systemd[1]: Stopping Argus daemon…
Feb 22 15:46:50 4-4-1 startargus.sh[6852]: === Visra[7357]: WARNING: Cleaning up 1 outstanding stream settings…=== Visra[7357]: WARNING: Cleaning up 1 outstanding sessions…
Feb 22 15:46:50 4-4-1 systemd[1]: Stopped Argus daemon.
Feb 22 15:46:50 4-4-1 systemd[1]: Started Argus daemon.
Feb 22 15:46:56 4-4-1 startargus.sh[8079]: === NVIDIA Libargus Camera Service (0.97.3)=== Listening for connections…=== Visra[8175]: Connection established (7F7EA8B1D0)OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module0
Feb 22 15:46:56 4-4-1 startargus.sh[8079]: OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module2
Feb 22 15:46:56 4-4-1 startargus.sh[8079]: NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
Feb 22 15:46:56 4-4-1 startargus.sh[8079]: NvPclHwGetModuleList: No module data found
Feb 22 15:46:56 4-4-1 startargus.sh[8079]: NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
Feb 22 15:46:56 4-4-1 startargus.sh[8079]: NvPclHwGetModuleList: No module data found
Feb 22 15:46:56 4-4-1 startargus.sh[8079]: OFParserGetVirtualDevice: NVIDIA Camera virtual enumerator not found in proc device-tree
Feb 22 15:46:56 4-4-1 startargus.sh[8079]: ---- imager: Found override file [/var/nvidia/nvcam/settings/imx415_bottom.isp]. ----
Feb 22 15:46:56 4-4-1 startargus.sh[8079]: CAM: serial no file already exists, skips storing againLSC: LSC surface is not based on full res!
Feb 22 15:46:56 4-4-1 startargus.sh[8079]: ---- imager: Found override file [/var/nvidia/nvcam/settings/imx415_top.isp]. ----
Feb 22 15:46:56 4-4-1 startargus.sh[8079]: CAM: serial no file already exists, skips storing againLSC: LSC surface is not based on full res!
Feb 22 15:47:01 4-4-1 startargus.sh[8079]: === Visra[8175]: CameraProvider initialized (0x7f78ccecf0)CAM: serial no file already exists, skips storing againLSC: LSC surface is not based on full res!
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: SCF: Error Timeout: ISP port 0 timed out! (in src/services/capture/NvIspHw.cpp, function waitIspFrameEnd(), line 478)
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: Error: waitCsiFrameStart timeout guid 0
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: VI Stream Id = 0 Virtual Channel = 0
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: **VI Debug Registers
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: VI_CSIMUX_STAT_FRAME_0 = 0x00000000
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: VI_CSIMUX_FRAME_STATUS_0 = 0x00000000
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: VI_CFG_INTERRUPT_STATUS_0 = 0x3f000000
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: VI_ISPBUFA_ERROR_0 = 0x00000000
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: VI_FMLITE_ERROR_0 = 0x00000000
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: VI_NOTIFY_ERROR_0 = 0x00000000
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: *****************************************
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: CSI Stream Id = 0 Brick Id = 0
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: **CSI Debug Registers
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: CILA_INTR_STATUS_CILA[0x10400] = 0x0800019b
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: CILB_INTR_STATUS_CILB[0x10c00] = 0x00000198
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: INTR_STATUS[0x100a4] = 0x00010006
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: ERR_INTR_STATUS[0x100ac] = 0x00010006
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: ERROR_STATUS2VI_VC0[0x10094] = 0x00000000
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: ERROR_STATUS2VI_VC1[0x10098] = 0x00000000
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: ERROR_STATUS2VI_VC2[0x1009c] = 0x00000000
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: ERROR_STATUS2VI_VC3[0x100a0] = 0x00000000
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: *****************************************
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: SCF: Error BadValue: timestamp cannot be 0 (in src/services/capture/NvViCsiHw.cpp, function waitCsiFrameStart(), line 630)
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: SCF: Error BadValue: (propagating from src/common/Utils.cpp, function workerThread(), line 116)
Feb 22 15:47:03 4-4-1 startargus.sh[8079]: SCF: Error BadValue: Worker thread ViCsiHw frameStart failed (in src/common/Utils.cpp, function workerThread(), line 133)
Feb 22 15:47:06 4-4-1 startargus.sh[8079]: === Visra[8175]: Connection closed (7F7EA8B1D0)=== Visra[8175]: WARNING: CameraProvider was not destroyed before client connection terminated.=== Visra[8175]: The client may have abnormally terminated. Destroying CameraProvider…=== Visra[8175]: CameraProvider destroyed (0x7f78ccecf0)=== Visra[8175]: WARNING: Cleaning up 1 outstanding requests…=== Visra[8175]: WARNING: Cleaning up 1 outstanding streams…SCF: Error InvalidState: 1 buffers still pending during EGLStreamProducer destruction (propagating from src/services/gl/EGLStreamProducer.cpp, function freeBuffers(), line 306)
Feb 22 15:47:06 4-4-1 startargus.sh[8079]: SCF: Error InvalidState: (propagating from src/services/gl/EGLStreamProducer.cpp, function ~EGLStreamProducer(), line 50)
Out of 20 reboot ,17 time connect without error. 3 times connected with error or not connected at all.
After I saw error log I just restart nvargus-daemon service and try to connect camera again.
startargus.sh →
#!/bin/bash
nice -n -15 /usr/sbin/nvargus-daemon