The same sensor behaves differently on different boards, the following:
NX board: v4l2 can capture raw picture, but nvgstcapture can not display the video stream
TX2 board: v4l2 can capture raw picture, nvgstcapture can display the video stream
NX board:
$ nvgstcapture
The Mipi signal can be measured by the oscilloscope, but nvgstcapture can not display the video stream
$ dmesg > dmesg.txt
dmesg.txt and sensor dts file in the attachment, the following:
dmesg.txt (71.5 KB)
tegra194-camera-jakku-rbpcv2-imx304.dtsi.txt (1.9 KB)
tegra194-camera-rbpcv2-imx304.dtsi.txt (8.9 KB)
Could you check the trace log for the failed case.
And if you can try boost the nvcsi/vi/isp clocks to try first.
$ echo 1 > /sys/kernel/debug/tracing/tracing_on
$ echo 30720 > /sys/kernel/debug/tracing/buffer_size_kb
$ echo 1 > /sys/kernel/debug/tracing/events/tegra_rtcpu/enable
$ echo 1 > /sys/kernel/debug/tracing/events/freertos/enable
$ echo 2 > /sys/kernel/debug/camrtc/log-level
$ echo 1 > /sys/kernel/debug/tracing/events/camera_common/enable
$ echo > /sys/kernel/debug/tracing/trace
$ nvgstcapture
$ cat /sys/kernel/debug/tracing/trace > trace.txt
trace.txt, the following:
trace.txt (28.1 KB)
How to boost the nvcsi/vi/isp clocks?
1. To boost the clocks:
$ sudo su
$ echo 1 > /sys/kernel/debug/bpmp/debug/clk/vi/mrq_rate_locked
$ echo 1 > /sys/kernel/debug/bpmp/debug/clk/isp/mrq_rate_locked
$ echo 1 > /sys/kernel/debug/bpmp/debug/clk/nvcsi/mrq_rate_locked
$ cat /sys/kernel/debug/bpmp/debug/clk/vi/max_rate |tee /sys/kernel/debug/bpmp/debug/clk/vi/rate
460800000
$ cat /sys/kernel/debug/bpmp/debug/clk/isp/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/isp/rate
576000000
$ cat /sys/kernel/debug/bpmp/debug/clk/nvcsi/max_rate | tee /sys/kernel/debug/bpmp/debug/clk/nvcsi/rate
300000000
2. enabled trace:
$ echo 1 > /sys/kernel/debug/tracing/tracing_on
$ echo 30720 > /sys/kernel/debug/tracing/buffer_size_kb
$ echo 1 > /sys/kernel/debug/tracing/events/tegra_rtcpu/enable
$ echo 1 > /sys/kernel/debug/tracing/events/freertos/enable
$ echo 2 > /sys/kernel/debug/camrtc/log-level
$ echo 1 > /sys/kernel/debug/tracing/events/camera_common/enable
$ echo > /sys/kernel/debug/tracing/trace
3. daemon run as infinite timeout mode, and then run nvgstcapture cmd
$ sudo service nvargus-daemon stop
$ sudo enableCamInfiniteTimeout=1 nvargus-daemon
=== NVIDIA Libargus Camera Service (0.97.3)=== Listening for connections...
=== nvgstcapture[7136]: Connection established (7F900971D0)OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module0
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
OFParserGetVirtualDevice: NVIDIA Camera virtual enumerator not found in proc device-tree
---- imager: Found override file [/var/nvidia/nvcam/settings/camera_overrides.isp]. ----
CAM: serial no file already exists, skips storing again=== nvgstcapture[7136]: CameraProvider initialized (0x7f888117f0)CAM: serial no file already exists, skips storing again
=== nvgstcapture[7136]: Connection closed (7F900971D0)=== nvgstcapture[7136]: WARNING: CameraProvider was not destroyed before client connection terminated.=== nvgstcapture[7136]: The client may have abnormally terminated. Destroying CameraProvider...=== nvgstcapture[7136]: CameraProvider destroyed (0x7f888117f0)=== nvgstcapture[7136]: WARNING: Cleaning up 1 outstanding requests...=== nvgstcapture[7136]: WARNING: Cleaning up 1 outstanding streams...SCF: Error InvalidState: 2 buffers still pending during EGLStreamProducer destruction (propagating from src/services/gl/EGLStreamProducer.cpp, function freeBuffers(), line 306)
SCF: Error InvalidState: (propagating from src/services/gl/EGLStreamProducer.cpp, function ~EGLStreamProducer(), line 50)
=== nvgstcapture[7136]: WARNING: Cleaning up 1 outstanding stream settings...=== nvgstcapture[7136]: WARNING: Cleaning up 1 outstanding sessions...
but nvgstcapture can not display the video stream
4. trace log
$ cat /sys/kernel/debug/tracing/trace > trace.txt
trace.txt (51.4 KB)
The trace log shows the same as before.
Could you configure the sensor as discontinuous clocks to try.
no, this sensor is not supported discontinuous clocks mode