Rockchip の 4.4.143 の時点で、このコミットの uvc-gadget を g_webcam と一緒に使用しています。このバージョンの uvc-gadget は、静的な mjpeg 画像のみを送信します (以前の uvc-gadget のソースよりもはるかに優れています)。
guvcview
ガジェットからのストリームを:で受信しているホスト ラップトップで興味深い動作が観察V4L2_CORE: (jpeg decoder) error while decoding frame
されますV4L2_CORE: Could not grab image (select timeout): Resource temporarily unavailable
。ホストはポーリングを続けます ( [75290.124695] uvcvideo: uvc_v4l2_poll
)。ホストの dmesg にも、デバイスの uvc-gadget にもエラーはありません。実際、guvcview ストリーミングを再度開いた後、uvc-gadget を再起動せずに再び動作しますが、すぐに同じようにクラッシュします。
私はストック USB3.0 ケーブルを使用しています。これはデバイスのストリーミングと電源供給の両方に使用されます。私の知る限り、物理レベルでこのような奇妙なちらつきを引き起こす可能性のあるノイズ源はありません。
さらに、小さな USB パケット サイズが 1024 から 256 に減少し、ストリームがより長く (最大 50,000 フレーム程度) 存続することに気付きましたが、最終的にクラッシュします。
ここで何が起こっているのか分かりますか?
アップデート
MJPEG 圧縮から非圧縮ストリームに切り替えた後、ちらつきはなくなりましたが、数秒後に常に接続が失われます。V4L2_CORE: Could not grab image (select timeout): Resource temporarily unavailable