2394184_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2394184_ja-JP

2394184_ja-JP

FRDM i.MX93におけるAP1302 MIPI CSIストリーミングの問題

こんにちは、

私はFRDM i.MX93ボードとX-RPI-CAM-MIPI A1カメラモジュールを使用しています。

私が直面している問題は、この設定からMIPI CSIストリームをキャプチャできないことです。

ファームウェアバイナリap1302_60fps_ar0144_27M_2Lane_awb_tuning.binを次の場所に配置しました: "/lib/firmware"

起動時にAP1302が正常に検出されていることは確認できますが、ビデオストリーミングを開始しようとすると、 VIDIOC_STREAMONが 「パイプが壊れています」という エラー で失敗します

以下に、関連するログを示します。

カーネルログ:

root@imx93evk:~# dmesg | grep ap1302
[    0.340980] /soc@0/bus@42000000/i2c@42530000/ap1302_mipi@3c: Fixed dependency cycle(s) with /soc@0/bus@42800000/csi@4ae00000
[    0.371014] /soc@0/bus@42800000/csi@4ae00000: Fixed dependency cycle(s) with /soc@0/bus@42000000/i2c@42530000/ap1302_mipi@3c
...
[   10.088832] ap1302 2-003c: AP1302 revision 0.2.6 detected

ストリーミングテスト:

root@imx93evk:~# v4l2-ctl -d /dev/video0 \
    --verbose \
    --stream-mmap=3 \
    --stream-count=10

VIDIOC_QUERYCAP: ok
VIDIOC_REQBUFS returned 0 (Success)
VIDIOC_CREATE_BUFS returned 0 (Success)
VIDIOC_QUERYBUF returned 0 (Success)
VIDIOC_QUERYBUF returned 0 (Success)
VIDIOC_QUERYBUF returned 0 (Success)
VIDIOC_G_FMT returned 0 (Success)
VIDIOC_QBUF returned 0 (Success)
VIDIOC_QBUF returned 0 (Success)
VIDIOC_QBUF returned 0 (Success)
VIDIOC_STREAMON returned -1 (Broken pipe)

なぜ VIDIOC_STREAMON が「 Broken pipe(パイプ破損) 」エラー で故障しているのか 、教えていただけません か?

ストリーミングを正常に開始する前に、AP1302のファームウェア、デバイスツリー、メディアパイプライン、またはセンサの初期化に追加の設定が必要ですか?

さらに、現時点では「LF_v6.18.2-1.0.0_images_IMX93EVK」というプリビルドイメージを使用しています。

追加のログや情報が必要な場合はお知らせください。

再開まで今しばらくお待ちください。

Re: AP1302 MIPI CSI Streaming Issue on FRDM i.MX93

AEチームと話し合っています。

Re: AP1302 MIPI CSI Streaming Issue on FRDM i.MX93

こんにちは@yipingwang

ご返信ありがとうございます。

参考までに、私の回答を以下に記載します。

1. ファームウェアの場所

推奨されているファームウェアのインストール場所と、それぞれの場所を個別に試してみました。カメラプローブは、 ap1302_ar0144_single_fw.binを使用した場合にのみ成功します。

root@imx93evk:~# ls -la /lib/firmware/ap1302_ar0144_single_fw.bin
-rw-r--r-- 1 root root 80528 Aug  5 15:36 /lib/firmware/ap1302_ar0144_single_fw.bin

root@imx93evk:~# ls -la /lib/firmware/imx/camera/ap1302.fw
-rw-r--r-- 1 root root 80528 Aug  5 15:38 /lib/firmware/imx/camera/ap1302.fw

AP1302は起動時に正常に検出されました。

root@imx93evk:~# dmesg | grep -i ap1302
...
[    9.962705] ap1302 2-003c: AP1302 revision 0.2.6 detected

しかし、カーネルログにはAP1302に関連するファームウェアの読み込みメッセージは一切見当たりません。


2. ソフトウェア環境

私はFRDM i.MX93ボード用に提供されているプリビルドイメージを使用しています。

root@imx93evk:~# cat /proc/device-tree/model
NXP FRDM-IMX93

root@imx93evk:~# cat /proc/cmdline
console=ttyLP0,115200 earlycon root=/dev/mmcblk0p2 rootwait rw

AP1302は正常に検出され、CSI/ISIデバイスも存在しています。参考までに、ログ全体を添付しました。


3. メディアパイプライン

メディアパイプラインは正しく作成されているようです。

root@imx93evk:~# ls /dev/media0
/dev/media0

root@imx93evk:~# ls /dev/video*
/dev/video0  /dev/video1

media-ctlの出力はAP1302、CSI、ISIエンティティが有効であることを示しています。参照のために、完全なmedia-ctl出力を添付します。


4. 追加情報

ご依頼いただいた情報については、添付ファイルfourth_point.txtをご参照ください。


5. ストリーミングの失敗

ストリーミングコマンドが失敗した際に、カーネルから追加のメッセージは表示されません。

root@imx93evk:~# dmesg -c

root@imx93evk:~# v4l2-ctl -d /dev/video0 --stream-mmap=3 --stream-count=10
VIDIOC_STREAMON returned -1 (Broken pipe)

root@imx93evk:~# dmesg

障害後もdmesg出力は空のままなので、根本原因を特定するための追加のカーネルログはありません。

AP1302が正常に検出され、メディアグラフも正しく作成され、VIDIOC_STREAMON中にカーネルエラーも報告されていないので、「 Broken pipe」 エラーでストリーミングが失敗する原因を特定するために、どのような追加のチェックやデバッグステップを教えていただけますか?

再開まで今しばらくお待ちください。


root@imx93evk:~# v4l2-ctl --list-devices
mxc-isi-cap (platform:4ae40000.isi):
        /dev/video0
        /dev/video1
        /dev/media0

root@imx93evk:~# v4l2-ctl -d /dev/video0 --all
Driver Info:
        Driver name      : mxc-isi
        Card type        : mxc-isi-cap
        Bus info         : platform:4ae40000.isi
        Driver version   : 6.18.2
        Capabilities     : 0xa4201000
                Video Capture Multiplanar
                I/O MC
                Streaming
                Extended Pix Format
                Device Capabilities
        Device Caps      : 0x24201000
                Video Capture Multiplanar
                I/O MC
                Streaming
                Extended Pix Format
Media Driver Info:
        Driver name      : mxc-isi
        Model            : FSL Capture Media Device
        Serial           : 
        Bus info         : platform:4ae40000.isi
        Media version    : 6.18.2
        Hardware revision: 0x00000000 (0)
        Driver version   : 6.18.2
Interface Info:
        ID               : 0x0300000a
        Type             : V4L Video
Entity Info:
        ID               : 0x00000008 (8)
        Name             : mxc_isi.0.capture
        Function         : V4L2 I/O
        Pad 0x01000009   : 0: Sink
          Link 0x0200000c: from remote pad 0x1000007 of entity 'mxc_isi.0' (Video Pixel Formatter): Data, Enabled, Immutable
Priority: 2
Video input : 0 (mxc_isi.0.capture: ok)
Format Video Capture Multiplanar:
        Width/Height      : 1920/1080
        Pixel Format      : 'YUYV' (YUYV 4:2:2)
        Field             : None
        Number of planes  : 1
        Flags             : 
        Colorspace        : sRGB
        Transfer Function : sRGB
        YCbCr/HSV Encoding: ITU-R 601
        Quantization      : Limited Range
        Plane 0           :
           Bytes per Line : 3840
           Size Image     : 4147200

User Controls

                horizontal_flip 0x00980914 (bool)   : default=0 value=0 flags=0x00001000
                  vertical_flip 0x00980915 (bool)   : default=0 value=0 flags=0x00001000
                alpha_component 0x00980929 (int)    : min=0 max=255 step=1 default=0 value=0 flags=0x00001000
root@imx93evk:~# media-ctl -p
Media controller API version 6.18.2

Media device information
------------------------
driver          mxc-isi
model           FSL Capture Media Device
serial          
bus info        platform:4ae40000.isi
hw revision     0x0
driver version  6.18.2

Device topology
- entity 1: crossbar (3 pads, 3 links, 1 route)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
        routes:
                0/0 -> 2/0 [ACTIVE]
        pad0: SINK,MUST_CONNECT
                [stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
                <- "csidev-4ae00000.csi":1 [ENABLED,IMMUTABLE]
        pad1: SINK,MUST_CONNECT
                <- "mxc_isi.output":0 [ENABLED,IMMUTABLE]
        pad2: SOURCE
                [stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:lim-range]
                -> "mxc_isi.0":0 [ENABLED,IMMUTABLE]

- entity 5: mxc_isi.0 (2 pads, 2 links, 0 routes)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev1
        pad0: SINK
                [stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
                 compose.bounds:(0,0)/1920x1080
                 compose:(0,0)/1920x1080]
                <- "crossbar":2 [ENABLED,IMMUTABLE]
        pad1: SOURCE
                [stream:0 fmt:YUV8_1X24/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
                 crop.bounds:(0,0)/1920x1080
                 crop:(0,0)/1920x1080]
                -> "mxc_isi.0.capture":0 [ENABLED,IMMUTABLE]

- entity 8: mxc_isi.0.capture (1 pad, 1 link)
            type Node subtype V4L flags 0
            device node name /dev/video0
        pad0: SINK
                <- "mxc_isi.0":1 [ENABLED,IMMUTABLE]

- entity 16: mxc_isi.output (1 pad, 1 link)
             type Node subtype V4L flags 0
        pad0: SOURCE
                -> "crossbar":1 [ENABLED,IMMUTABLE]

- entity 23: csidev-4ae00000.csi (2 pads, 2 links, 1 route)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev2
        routes:
                0/0 -> 1/0 [ACTIVE]
        pad0: SINK
                [stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
                <- "ap1302 2-003c":2 [ENABLED]
        pad1: SOURCE
                [stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:smpte170m xfer:709 ycbcr:601 quantization:lim-range]
                -> "crossbar":0 [ENABLED,IMMUTABLE]

- entity 28: ap1302 2-003c (3 pads, 2 links, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev4
        pad0: SINK
                [stream:0 fmt:SGRBG12_1X12/1280x800 field:none colorspace:srgb
                 crop.bounds:(0,0)/1280x800
                 crop:(0,0)/1280x800]
                <- "ar0144 0":0 [ENABLED,IMMUTABLE]
        pad1: SINK
                [stream:0 fmt:SGRBG12_1X12/1280x800 field:none colorspace:srgb
                 crop.bounds:(0,0)/1280x800
                 crop:(0,0)/1280x800]
        pad2: SOURCE
                [stream:0 fmt:UYYVYY8_0_5X24/4224x4092 field:none colorspace:srgb
                 crop.bounds:(0,0)/1280x800
                 crop:(0,0)/1280x800]
                -> "csidev-4ae00000.csi":0 [ENABLED]

- entity 32: ar0144 0 (1 pad, 1 link, 0 routes)
             type V4L2 subdev subtype Sensor flags 0
             device node name /dev/v4l-subdev3
        pad0: SOURCE
                [stream:0 fmt:SGRBG12_1X12/1280x800 field:none colorspace:srgb]
                -> "ap1302 2-003c":0 [ENABLED,IMMUTABLE]

よろしくお願いします、
ミラフ

Re: AP1302 MIPI CSI Streaming Issue on FRDM i.MX93

AP1302プローブが成功したとしても、カメラパイプライン全体が構成され、ストリーミングが開始されることを保証するものではありません。i.MX93では、VIDIOC_STREAMONが-1(破損パイプ)を返すと、通常、メディアパイプラインのコンポーネント(AP1302→MIPI、CSI-2レシーバ、→ISIキャプチャパス)が有効なストリームを開始または交渉できなかったことを意味します。ログには、AP1302 I²Cデバイスが検出されたという情報しか記録されていません。

ap1302 2-003c: AP1302 リビジョン 0.2.6 が検出されました

しかし、それは以下のことを確認するものではありません

  • ファームウェアのロードに成功しました。
  • 正しいDTBが使用されました。
  • メディアグラフが作成されました。
  • CSIレシーバは受信するMIPIデータにロックされています。
  • AP1302は、対応する出力フォーマットで設定されています。

まず最初に確認すべきことは、ファームウェアの場所と名前です。

FRDM-i.MX93 AP1302のサポートについては、NXPのドキュメントには以下が記載されています:

  1. ap1302_60fps_ar0144_27M_2Lane_awb_tuning.bin をダウンロードしてください。
  2. 名前をap1302.fwに変更してください。
  3. 配置場所:

/lib/firmware/imx/camera/ap1302.fw

単に /lib/firmware ではない。

ご確認ください:

ls -l /lib/ファームウェア/imx/カメラ/ap1302.fw


そしてブートログを確認してください。

dmesg | grep -i firmware

dmesg | grep -i ap1302

次のようなメッセージを探してください。

ファームウェアを要求する

ファームウェアがロードされました

ファームウェアの読み込みに失敗しました

2つ目の確認事項:正しいDTBを使用していますか?

リリースノートによると、AP1302のサポートはi.MX93 EVKデバイスツリーのサポートと関連しています。

確認:

cat /proc/device-tree/model

cat /proc/cmdline

そして、実際にロードされるDTBを特定します。

こちらもご確認ください:

dmesg | grep -i ap1302

dmesg | grep -i csi

dmesg | grep -i isi

三つ目のチェック:メディアトポロジーの検証

v4l2-ctlを試す前に、メディアグラフが存在するか確認してください:

シェル

media-ctl -p

もっと行を表示

以下のようなエンティティが表示されるはずです。

ap1302

CSI

イシ

ビデオX

/dev/media0が存在しない場合、カメラパイプラインが正しく作成されていません。非常に似たFRDM-i.MX93 AP1302 CASEは以下の通りでした:

media-ctl -p

/dev/media0 の列挙に失敗しました

これはメディアパイプラインがインスタンス化されていないことを示していました。

チェックしてください:

ls -l /dev/media*


4つ目の確認事項:交渉済みのフォーマットを検査する

次を実行します。

v4l2-ctl --list-devices

そして、

v4l2-ctl -d /dev/video0 --all

また:

media-ctl -p

AP1302のファームウェアは通常、RAWベイヤーではなく、処理済みのYUVフォーマットを出力します。もう一つよくある失敗例は次のとおりです。

AP1302はフォーマットAを出力する

ISIはフォーマットB用に構成されています

ストリームの起動失敗を引き起こしています。フォーマットの不一致は、STREAMONの失敗やCSIパイプラインのエラーとして現れることが多い。

5回目のチェック:STREAMON実行中のCSIエラーを検査する

別のターミナルを開いて監視します。

dmesg -w

そして、以下を実行します。

v4l2-ctl -d /dev/video0 \

--stream-mmap=3 \

--stream-count=10


次のようなメッセージを探してください。

CSIタイムアウト

フレーム開始タイムアウト

データを受信しませんでした

FIFOオーバーフロー

MIPIエラー

リンクが有効になっていません


これらのメッセージは通常、配管破損の本当の原因を明らかにします。

タグ(1)
評価なし
バージョン履歴
最終更新日:
昨日
更新者: