I am having an issue with streaming via MIPI on CAM0 using an Orin Nano dev kit (8GB).
I have a device tree file and driver code. Basically I get /dev/video0 when loading the driver module. However when use the following gstreamer command I get a green screen.
I am also having trouble enabling dynamic debug. If I copy over the Image file it cannot find the Partition ID of the NVME drive I am running on.
Here is the gstreamer output:
Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
Pipeline is PREROLLED …
Setting pipeline to PLAYING …
WARNING: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Signal lost
Additional debug info:
…/sys/v4l2/gstv4l2src.c(556): gst_v4l2src_query_preferred_size (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
No input source was detected - video frames invalid
New clock: GstSystemClock
Redistribute latency…
ERROR: from element /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0: Output window was closed
Additional debug info:
…/sys/xvimage/xvimagesink.c(568): gst_xv_image_sink_handle_xevents (): /GstPipeline:pipeline0/GstXvImageSink:xvimagesink0
Execution ended after 0:00:10.774681097
Setting pipeline to NULL …
Freeing pipeline …
What is the best way to “see” the MIPI packets in a trace log to ensure I am at least getting a signal through?
could you please confirm…
(1) please check it’s outputting validate contents to output.raw
(2) let’s simply check the streaming by skipping --stream-to options, it shall print frame-rate per second below the pipeline.
The output.raw file is created but it is zero length. I don’t believe that I am getting valid packets and not sure how to troubleshoot in terms of seeing the CSI packet information in a trace log? Could you also provide the v4l2-ctl command without stream-to option? I ran it without stream-to and got the same output.
it’s simply removing --stream-to option for fetching stream via v4l2,
for example, $ v4l2-ctl --verbose --device=/dev/video0 --set-fmt-video=width=720,height=720,pixelformat=YUYV --stream-mmap --stream-count=200
that should output < to indicate a frame has captured, and report frame-rate per second below the pipeline.
there should be streaming issue if that did not output anything, please dig into kernel logs, $ dmesg > klog.txt for investigation.
besides, may I also confirm which Jetpack release version you’re working with,
you should check the release tag, i.e. $ cat /etc/nv_tegra_release for confirmation.
J20: CSI 1 x2 lane
J21: CSI 1 x2 lane or 1 x4 lane
CAM0 camera slot (J20) now streams on CSI-B instead of CSI-A. it’s only supported with 1-lane or 2-lane configuration.
please double check your device tree settings, you may connect to CAM1 if that’s 4-lane configure.
besides,
CSI0 D1 and CSI1 D0 P/N will always been swizzled for P/N, you may use device tree property, lane_polarity to configure a polarity swap on any lane.
let me give you VI tracing logs with a success image capture as an example,
for instance,
there must be one pair of CHANSEL_PXL_SOF/CHANSEL_PXL_EOF to indicate a frame has detected by VI engine.
afterwards, it’s ATOMP_FRAME_DONE to indicate it’s complete writing a frame to memory.
I am now getting a deskew issue:
Class: Global
Type: PHY_Interrupt0
PHY: 0
CIL: 0
Stream: 0
VC: 0
Status: 134217728
Timestamp: 3339202237
PHY_Interrupt0 : 0x0000000008000000
-dphy_cil_deskew_calib_err_ctrl [27]: 1
DPHY deskew calibration not complete on clock lane [A/B]. Happen when the calibration sequence length is not long enough
How does it compute the need for Deskew from the device tree file? I have tried changing max lane speed and csi pixel depth but keep getting this error.
deskew calibration is a must if data-rate > 1.5 Gbps, Else the camera firmware will continue to wait for deskew signal from the sensor side. it’ll enable pixel parser when deskew calibration has completed.
you may try tune cil_settletime, please see-also Property-Value Pairs for calculation formulas.
besides, please refer to Infinite Timeout Support to test with enableCamInfiniteTimeout=1 .
BTW, since JetPack 6.1 is now available, is it possible for moving to the latest release version for verification.