警告メッセージ

Howtoは、Armadilloシリーズを有効に活用するための参考資料です。使用ソフトウェアのバージョンなど諸条件の差異によって、記載内容と実際の動作が異なる場合があります。また、すべての機能検証や長期の動作試験を行ったものではありませんので、必ずご使用目的に適合した検証・試験を行ってください。

Howto : UVC対応Webカメラを使用してディスプレイに動画像を表示する

対象製品: Armadillo-500

UVC(USB Device Class)に対応したWebカメラを使用して、ディスプレイに動画像を表示する方法を紹介します。UVC対応カメラは、Qcam Orbit AF(Logicool製)を使用します。また、動画像の表示にはuvcviewを使用します。

おおまかな手順は下記のようになります。

  1. uvcviewをクロスコンパイルする
  2. UVC対応カメラを使用可能なDebian GNU Linux (etch)を用意する
  3. 実行する

なお、本 Howto では、以下の環境を想定しています。

1. uvcviewをクロスコンパイルする

uvcviewのクロスコンパイルには、libgtk2.0-devが必要です。libgtk2.0-devは多くのパッケージに依存しているため、一つ一つクロス開発用にインストールするのは大変です。そこで、libgtk2.0-devを含んでいるArmadillo-500 FX用の開発環境一式をインストールしてしまいます。

/etc/apt/sources.listに下記の1行を追加してください。


deb http://download.atmark-techno.com/debian etch/

以下のコマンドで、Armadillo-500 FX用の開発環境一式がインストールされます。


[PC ~]$ sudo apt-get update
[PC ~]$ sudo apt-get install a500fx-development-environment

uvcviewのソースコードを取得します。


[PC ~]$ wget http://www.nurs.or.jp/~ogochan/hack/uvcview-20070607.tar.gz
[PC ~]$ tar xzvf uvcview-20070607.tar.gz

クロスコンパイルします。


[PC ~]$ cd uvcview-20070607
[PC ~/uvcview-20070607]$ ./configure --host=arm-gnu-linux CC=arm-linux-gnu-gcc
[PC ~/uvcview-20070607]$ make
[PC ~/uvcview-20070607]$ ls src/uvcview
src/uvcview

srcディレクトリの下に、uvcviewが作成されます。

2. UVC対応カメラを使用可能なDebian GNU Linux (etch)を用意する

Armadillo-500 ソフトウェアマニュアルを参照して、コンパクトフラッシュカードにDebian GNU Linux (etch)をセットアップしてください。

カーネルは、video4linux2が有効になっている必要があります。コンパクトフラッシュカードのパーティション1の/boot/Image.gzには、UVC対応Webカメラを使用してストリーミング配信をおこなうで作成したカーネルを、名前を変更して保存してください。

また、uvcvideoデバイスドライバも必要ですので、UVC対応Webカメラを使用してストリーミング配信をおこなうと同じ手順でuvcvideo.koを用意してください。

準備ができたら、Armadillo-500にディスプレイ、USBキーボード、USBマウスを接続して、Debian GNU Linuxを起動してください。USBポートが足りなくなりますので、USBキーボードとUSBカメラはUSBハブ経由で接続するとよいでしょう。

Debian GNU Linuxが起動できたら、X windowシステム及びlibgtk2.0をインストールします。


armadillo:~# apt-get update
armadillo:~# apt-get install x-window-system-core
armadillo:~# apt-get install libgtk2.0-0

手順1. で作成した、uvcvideo.ko及びuvcviewをftp等でArmadillo-500にコピーしてください。uvcvideo.koはinsmodしておきます。


armadillo:~# insmod uvcvideo.ko

uvcvideo.koをinsmodしたあとに、UVC対応ビデオカメラをUSBポートに接続すると、カメラが認識されます。


usb 1-1: USB disconnect, address 5
usb 1-1: new high speed USB device using fsl-ehci and address 6
usb 1-1: configuration #1 chosen from 1 choice
uvcvideo: Found UVC 1.00 device  (046d:0994)
uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.
input: UVC Camera (046d:0994) as /class/input/input8

3. 実行する

まずは、Xを起動します。VGAコンソールで、以下のコマンドを実行してください。


armadillo:~# startx

ウィンドウマネージャをインストールしていないので、X serverが起動したあと、xtermのみが起動します。

xtermで、以下のコマンドを実行すると、uvcviewが起動されカメラで撮影している画像が画面に表示されます。


armadillo:~# ./uvcview -cam /dev/video0 -fps 5 -width 352 -height 288

dmesgに下記のように表示されて、画面が黒くなったり、表示が安定しない場合は、fpsや解像度の指定を変更してみてください。


uvcvideo: Failed to resubmit video URB (-45).

4. 関連情報

本Howtoは、Armadillo-500に適用できます。