web-dev-qa-db-ja.com

Linuxビデオキャプチャがcam3で機能しないか、cam1での画像キャプチャが失敗する

私はこれについていくつかの解決策または実行時の修正を試みています。

問題:3台目のカメラを接続した後、Linuxビデオキャプチャがcam3で機能しないか、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.

dmesg:

[399.544408] uvcvideo:UVC 1.00デバイスUSB2.0カメラが見つかりました(1871:2097)

[399.544429] uvcvideo:テスト目的でモジュールパラメータによってデバイスの癖を0x80に強制します。

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

[399.547449]入力:/ devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3:1.0/input/input32としてのUSB2.0カメラ

[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]入力:/ devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8:1.0/input/input34としてのUSB2.0カメラ

カメラのV4L2_BUF_TYPE_VIDEO_CAPTURE情報を取得しようとしました:リストされているすべての接続されたカメラ(YUV 4:2:2(YUYV))

HW仕様:N2600 Aveoテクノロジーカメラ3モデル(diff VID:PID付き)

この問題を修正するには、いくつかのガイダンスが必要です。

2
Ragav

発見:

3.16カーネルのN2600 :( Quirk 0x80あり/なしの両方)

カメラあたりの帯域幅は328Mbでした。私の場合、割り当てられた全体の帯域幅は656(2台のカメラの場合)で、USBコントローラーの最大帯域幅は800でした。したがって、3台目のカメラに使用できるスペースがありませんでした。

2.6.32カーネルのN2600

同じ私の3番目のカメラは機能せず、カメラあたりのメモリ割り当ては320Mbでした

N2600、2.6.32カーネル、Quirk 0x80

Uvcvideoに癖を付けると、メモリ割り当てが320Mbから128Mbに大幅に削減され、3台のカメラすべてが期待どおりに機能しました。

ソリューション

これが非常に正しい解決策かどうかはよくわかりません。ただし、トラブルシューティングを支援し、この問題に対処するためのいくつかのポインタを提供してくれた Stuart(SwDevRefugee) に感謝します。

新しいカーネルbandwidth = max_t(u32、bandwidth、1024);のuvc_fixup_video_ctrl()にこの行があり、古いカーネルにはありません。コメントしてUVCドライバーを再コンパイルすると、quirk 0x80のメモリ割り当てが328から128 Mbに下がり、システムが機能します。これは複数のカメラを持っている人に役立つかもしれません

1
Ragav