Linuxビデオキャプチャがcam3で動作しないか、cam1での画像キャプチャが失敗します。

Linuxビデオキャプチャがcam3で動作しないか、cam1での画像キャプチャが失敗します。

これに対する解決策やランタイム修正を作成しようとしています。

問題:Linuxビデオキャプチャがcam3で動作しないか、3台目のカメラを接続した後、cam1で画像をキャプチャできません。

歴史:最初は監視システムを開発しました。システムは2台のカメラで構成されています。

1. Video capture (Using Motion)
2. Image capture(Using V4L)

We added one more camera to the system, which is causing the mess currently.
3.  Video capture (Using Motion)


  We notice either a video capture or image capture does not work in the system. various forums, suggested for adding quirk=128 in conf, even that idd not work out.

情報:

[399.544408] uvcvideo: UVC 1.00 デバイス USB2.0 カメラ発見 (1871:2097)

[399.544429] uvcvideo:テストのためにモジュールパラメータを介してデバイスの理想性を0x80に強制します。

[399.544441] uvcvideo:必要な問題をlinux-uvc-develメーリングリストに報告してください。

[399.547449] 入力: USB2.0 カメラは /devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3:1.0/input/input32 です。

[399.668599] uvcvideo: UVC 1.00 デバイス USB2.0 カメラ発見 (1871:0501)

[399.668613] uvcvideo:テストのためにモジュールパラメータを介してデバイスの理想性を0x80に強制します。

[399.668618] uvcvideo:必要な問題をlinux-uvc-develメーリングリストに報告してください。

[399.671360] 入力: /devices/pci0000:00/0000:00:1d.7/usb1/1-4/1-4.4/1-4.4:1.0/input/input33用USB2.0カメラ [399.732317] uvcvideo UVC 1.00デバイスUSB2.0カメラ(1871:0f01)

[399.732328] uvcvideo:テストのためにモジュールパラメータを介してデバイスの理想性を0x80に強制します。

[399.732334] uvcvideo:必要な問題をlinux-uvc-develメーリングリストに報告してください。

[399.735996] 入力: USB2.0 カメラは /devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8:1.0/input/input34 です。

カメラからV4L2_BUF_TYPE_VIDEO_CAPTURE情報を取得しようとしている:接続されているすべてのカメラを一覧表示する(YUV 4:2:2(YUYV))

ハードウェア仕様:VID:PIDの異なるN2600 Aveo技術カメラ3モデル

この問題を解決するには指示が必要です。

ベストアンサー1

発見する:

3.16 カーネルを含む N2600: (Quirk 0x80 を含む/除外)

カメラあたりの帯域幅は328Mbです。私の場合、合計割り当て帯域幅は656(カメラ2台ベース)で、USBコントローラの最大帯域幅は800です。だから3番目のカメラを置くスペースがありませんでした。

N2600カーネルは2.6.32です。

同様に、3番目のカメラは機能しません。各カメラに割り当てられたメモリは320 Mbです。

2.6.32 カーネルとQuirk 0x80を搭載したN2600

uvcvideoに奇妙な点を適用すると、メモリ割り当てが320Mbから128Mbに大幅に減少し、3つのカメラがすべて期待どおりに機能します。

解決策:

これが非常に正確な解決策であるかどうかはわかりません。しかし、私はまだ感謝したいと思います。スチュワート(SwDevRefugee)トラブルシューティングを支援し、この問題を解決するためのいくつかの提案を提供してください。

新しいカーネルの uvc_fixup_video_ctrl() に次の行があります。帯域幅= max_t(u32、帯域幅、1024);そして古いものは消えた。私のUVCドライバに注釈を付けて再コンパイルした後、それを使用します。クォーク 0x80メモリ割り当てが328Mbから128Mbに減少し、システムが正常に動作します。複数のカメラを使用している人には役に立ちますが、

おすすめ記事