CentOS on X40:EYETOY認識編

Windowsでの認識に続いて、CentOSでもEYETOYを認識させてみます。
以前VineLinuxでEYETOYの認識を行いましたが、あれ以降情報のあるサイトがなくなったりしたのでまとめという意味も含めて、再度記録します。

EYETOYの動作にはLinux OVCam Driversのドライバではなく、Ov51x JPEG hacked WikiにあるJPEG圧縮ドライバを使用します。

JPEG圧縮ドライバの最新版にあたる1.x系はVideo4Linux2がいるらしく、正しくコンパイルできません。
ここでは旧版にあたる0.5.4を使用しました。

JPEG圧縮ドライバソースのダウンロード

# wget http://www.rastageeks.org/downloads/ov51x-jpeg/old-releases/ov51x-jpeg-0.5.4.tar.gz

圧縮ファイルの展開

# tar xzvf ov51x-jpeg-0.5.4.tar.gz

コンパイル

# cd ov51x-jpeg-0.5.4
# make

ドライバの取り込み

# modprobe videodev
# insmod ov51x.ko
# insmod ov519_decomp.ko

ドライバの確認

# lsmod ※以下3項目があればOK
ov519_decomp 22332 0
ov51x 88384 1 ov519_decomp
videodev 10049 1 ov51x

VineLinuxの時との違いは、取り込むドライバにov51x.o、ov519_decomp.oではなく、ov51x.ko、ov519_decomp.koを入れることです。
ov51x.o、ov519_decomp.oだとモジュールフォーマットが違うためエラーが出ます。

VineLinuxでやったときと同様に、キャプチャソフトxawtvに付属のwebcamで表示処理を行うので、xawtvのインストールを行います。
CentOSにはyumでのxawtvがないので(リポジトリ追加でできるかもしれませんが)、ソースからコンパイルします。
インストールしたxawtvのバージョンは3.95を使用しました。

xawtvのダウンロード・インストール

# wget http://dl.bytesex.org/releases/xawtv/xawtv-3.95.tar.gz
# tar xzvf xawtv-3.95.tar.gz
# cd xawtv-3.95
# ./configure
# make
# make install

画面キャプチャのための設定を行います。キャプチャしたいユーザのhomeディレクトリに設定ファイルを置く必要があります。

.webcamrc設定ファイルの作成

$ vi .webcamrc
[ftp]
dir = /home/ユーザID/public_html/webcam ※画像を置く場所。
file=test.jpg ※ファイル名。
tmp=tmp.jpg ※一時ファイル名。
auto=0 ※自動設定?
local=1 ※FTPを使用しない場合は1。使用する場合はユーザとパスワードとホスト名が必要となる。
ssh=0 ※暗号化接続?
debug=0 ※デバッグモード?
[grab]
device = /dev/video0 ※デバイス名。
text = "webcam(EYETOY) %Y-%m-%d %H:%M:%S" ※キャプチャ下画像の左下に表示する名前。
fg_red=255 ※赤調整
fg_green=255 ※緑調整
fg_blue=200 ※青調整
width = 640 ※幅。最大640。Webカメラの使用による。
height = 480 ※高さ。最大480。Webカメラの使用による。
delay = 10 ※撮影頻度(秒)
rotate = 0 ※画像回転?
top = 0 ※表示位置
left = 0 ※表示位置
bottom = -1 ※高さ。-1は最大高さ取得。
right = -1 ※幅。-1は最大幅取得。
quality = 80 ※解像度。100でもあまりかわらない。
trigger = 0 ※下記参照
once = 0
norm=ntsc ※ビデオモードの指定。
archive=/home/ユーザID/public_html/webcam/archive/live_%Y%m%d%H%M%S.jpg ※取得した画像をまとめる場所。ただし、際限なく集めるのでHDD容量に注意が必要。

※triggerについて
webcamを起動すると、delay値の時間に従って「compare: max=95,avg=6」といった値を出力します。
たとえば、tregger=100と指定した場合、定期的に出力されるmaxの値が100以上になると動体検地されたとみなし、delayを無視しmaxの値が100を切るまで連続で監視します。
指定する場合は、値が高すぎると常時監視状態になり、低すぎると定期監視しかしませんので、maxの値を見ながら調整するといいでしょう。
ちなみに、連続監視状態のときはかなりCPUを食います。

webcamの起動

# webcam
# webcam & ※バックグラウンドで動作、ただしログは画面に出力される
# nohup webcam & ※バックグラウンドで動作、ログをファイルに保存する

※webcam &で起動した場合の終了方法

# killall webcam

キャプチャ直後はtest.jpgを生成するので、例えばHTMLでtest.jpgを参照するように設定すれば、外からでも見ることができるでしょう。

「v4l2: open /dev/video0: No such device」等のエラーが出た場合の対処法

# mknod /dev/video0 c 81 0
# chgrp video /dev/video0
# chmod g+w /dev/video0

これでもエラーが出る場合は、USBハブ経由をやめれば直る可能性があります。

ウルトラベースX4のUSBはハブ扱いのようなので、これ経由でEYETOYはだめかもしれません。

なかなか情報が見つからず、妙にてこずってしまいました。
原因としては、使用するドライバのバージョンが違うことと、組み込むドライバが.oではなく.koのファイルだったことに気づくまで長い間かかりました・・・

次回はドライバの自動読み込みと、やたらまぶしいLEDランプの操作と、時間がかかるかもしれませんがストリーミングのテストを実施を予定しています。
メモ:EyeToy – PukiWiki

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中