• 締切済み

USBカメラ画像の表示が不安定

リナックス環境 ・Fedora Core 1 Kernel 2.4.22 ・RT-Linux 3.2 pre3 Kernel 2.4.22 USBカメラ ・Qcam Pro 4000 USBカメラから画像を取得して表示するプログラムを作成しています。 ドライバをインストールし、下のコマンドで正常に画像が表示されます。 xawtv -c /dev/video0 作成中のプログラムでは、ウィンドウにカメラ画像を表示し、25ms毎にその画像を更新しています。ウィンドウの作成、画像の表示にはOpenCVを用いています。 このプログラムを起動すると始めのうちは正常に画像が更新されているのですが、あるときを境に表示が乱れ始めます(ブロックノイズが多発する、点滅する、真っ黒になる)。いったん乱れ始めるとプログラムを再起動したとしても症状が直ることはありません。また、この症状が発生するとOSが極端に不安定になり、今までに以下のようなフリーズが発生しています(ほとんどが1のようなフリーズで、2のフリーズは先日初めて発生しました)。 1.マウスもキーボードも応答しなくなる(マウスカーソルも動かない) 2.突然黒い画面になり「usb-uhci.c: interrupt, status 2, frame #1779」と表示される 不思議な事に、この症状が発生中にxawtvコマンドを用いて画像を表示すると乱れる事は一切ありません。自作のプログラムを経由して画像を表示すると乱れてしまうのです。また、どうやら画像自体は正常に取得できているようで(OpenCVによる画像処理は上手くいっている)、「プログラム」から画像を「表示」することに問題があるようです。 症状の特徴としては、CPUに負荷がかかったときに画像が乱れるようです。マウスをそっとしておくよりも、マウスを速く動かしているときの方が激しく乱れます。また、この症状はプログラムを動かしているときに急に発生するのですが、全く発生しない日もあり(それがまた原因が特定しにくい)、プログラムが完全に悪いというわけでもないようなのです。 始めはグラフィックボードの故障を疑いましたが、交換しても症状は直りませんでした。 当方Linuxの知識に乏しく、インターネットで情報を集めできる限りのことはしたつもりなのですが、もうなす術がなく途方に暮れているところです。近くに相談できる人もおらず、最後の望みとしてここで質問させて頂く事にしました。 もし何かお気づきの点がありましたらアドバイスして頂けると非常に助かります。 よろしくお願い致します。 長文失礼しました。

みんなの回答

  • kusa_mochi
  • ベストアンサー率76% (1597/2087)
回答No.1

自分はLinux上でプログラムは組んだ事は無いが、多少なりとも参考になれば。 まず、  ・OSが不安定になる  ・usb-uhci.cという文字列が出てきた(USBのドライバのようです) という症状から、USBのドライバ側で何らかの異常が起きている可能性があると思います。 可能性を考えるなら、  ・USBドライバの使い方(ライブラリ経由だと思いますが)がおかしいせいで、USBドライバの動作不安定を招いている  ・USBドライバ側にバグがあり、それを叩き出してしまっている でしょうか。 上側の例としては、TCP/IPでいう所のsocketをクローズせずに次から次へと新規にオープンしっぱなしでOSの持つリソースを使い尽くしたようなケース (USBを扱った経験が無いのでTCP/IPの例で申し訳ないのですが)とか。 一度USB周りのプログラミングが、規約に則って行なわれているかチェックしてみるとか、戻り値が異常になっているかどうかチェックするロジックを追加して、万一おかしい場合はコンソールに出力するようにしてみてはどうでしょうか。 (USB周りのライブラリ関数の戻り値をちゃんとチェックしていますか?100%正常な値が帰って来ると言う思い込みで、チェックをスルーしていませんか?)  

puni102
質問者

お礼

結局、 RT-Linux + SMTP(マルチプロセッサ) という環境がいけなかったようです。 どうやらRT-Linuxはマルチプロセッサ関連の不具合が多いらしいです。 真剣に考えて頂いてありがとうございました。 また、返事が大変遅れてしまい申し訳ありませんでした。

すると、全ての回答が全文表示されます。

関連するQ&A