i.MX6 MIPI-CSI2 OV5640 Camera testing on Mainline Linux

Steve Longerbeam steve_longerbeam at mentor.com
Tue Oct 23 17:39:35 UTC 2018


On 10/23/18 10:34 AM, Adam Ford wrote:
> On Tue, Oct 23, 2018 at 11:36 AM Steve Longerbeam
> <steve_longerbeam at mentor.com> wrote:
>> Hi Adam,
>>
>> On 10/23/18 8:19 AM, Adam Ford wrote:
>>> On Mon, Oct 22, 2018 at 7:40 AM Fabio Estevam <festevam at gmail.com> wrote:
>>>> Hi Adam,
>>>>
>>>> On Mon, Oct 22, 2018 at 9:37 AM Adam Ford <aford173 at gmail.com> wrote:
>>>>
>>>>> Thank you!  This tutorial web site is exactly what I need.  The
>>>>> documentation page in Linux touched on the media-ctl links, but it
>>>>> didn't explain the syntax or the mapping.  This graphical
>>>>> interpretation really helps it make more sense.
>>>> Is capturing working well on your i.MX6 board now?
>>> Fabio,
>>>
>>> Unfortunately, no.  I built the rootfs based on Jagan's instructions
>>> at https://openedev.amarulasolutions.com/display/ODWIKI/i.CoreM6+1.5
>>>
>>> I tried building both the 4.15-RC6 kernel, a 4.19 kernel and a 4.14 LTS kernel.
>>>
>>> Using the suggested method of generating the graphical display of the
>>> pipeline options, I am able to enable various pipeline options
>>> connecting different /dev/videoX options tot he camera.  I have tried
>>> both the  suggested method above as well as the instructions found in
>>> Documentation/media/v4l-drivers/imx.rst for their respective kernels,
>>> and I have tried multiple options to capture through
>>> ipu1_csi1_capture, ipu2_csi1_capture, and ip1_ic_prepenc capture, and
>>> all yield a broken pipe.
>>>
>>> libv4l2: error turning on stream: Broken pipe
>>> ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could
>>> not read from resource.
>>> Additional debug info:
>>> gstv4l2bufferpool.c(1064): gst_v4l2_buffer_pool_poll ():
>>> /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
>>> poll error 1: Broken pipe (32)
>>>
>>> I can hear the camera click when I start gstreamer and click again
>>> when it stops trying to stream.
>>>
>>> dmesg indicates a broken pipe as well..
>>>
>>> [ 2419.851502] ipu2_csi1: pipeline start failed with -32
>>>
>>> might you have any suggestions?
>>
>> This -EPIPE error might mean you have a mis-match of resolution, pixel
>> format, or field type between one of the source->sink pad links. You can
>> find out which pads have a mis-match by enabling dynamic debug in the
>> kernel function __media_pipeline_start.
> Following Jagan's suggestion, I tried to make sure all the resolution
> and pixel formats were set the same between each source and sink.
>
> media-ctl --set-v4l2 "'ov5640 2-0010':0[fmt:UYVY2X8/640x480
> field:none]"
> media-ctl --set-v4l2 "'imx6-mipi-csi2':1[fmt:UYVY2X8/640x480
> field:none]"
> media-ctl --set-v4l2 "'ipu1_csi0_mux':2[fmt:UYVY2X8/640x480
> field:none]"
> media-ctl --set-v4l2 "'ipu1_csi0':2[fmt:AYUV32/640x480 field:none]"
>
>> Also make sure you are attempting to stream from the correct /dev/videoN.
> I have graphically plotted the pipeline using media-ctl --print-dot
> and I can see the proper video is routed, but your dynamic debug
> suggestion yielded something:
>
>     imx-media capture-subsystem: link validation failed for 'ov5640
> 2-0010':0 -> 'imx6-mipi-csi2':0, error -32


It's what I expected, you have a format mismatch between those pads.

Steve


>
> I am assume this means the interface between the camera and the csi2
> isn't working.  I am going to double check the power rails and the
> clocks.  i can hear it click when activated and deactivated, so
> something is happening.
>
> adam
>
>> Steve
>>


More information about the gstreamer-devel mailing list