Zoneminderのインストール条件にUBUNTU12.10とある。(2014年 4月時点では)CuBoxでは12.10がすでに準備されているが、CuBox-iではまだ11.10 Lineoが最新版となっている。デフォルトがAndroid4.3だけに12.10になる日がいつになることかわからない。ここでは、以前のモデルCuBoxでUBUNTU12.10を使って検証する。CuBox-iでも動作可能になったらこのコラムでまた報告する。Debian7.0をCuBox-iにインストールする予定もあるので試してみる。
さて、CuBoxのUBUNTU12.10ですが、さらに1つ問題がある。Zoneminderに欠かせないWebカメラをつなぐためのドライバが入っていない。 公式サイトのXUBUNTU/Debianのページ
http://www.solid-run.com/mw/index.php?title=Debian_and_derivatives
によると、”Debian and Ubuntu do not include all drivers by default. SolidRun provides a dpkg repository.” ということで、引き続くインストラクションに従ってドライバを追加させようとするとdipendencyエラーがでる。
deb http://download.solid-run.com/pub/solidrun/cubox/repo/debian cubox main
deb-src http://download.solid-run.com/pub/solidrun/cubox/repo/debian cubox main
というわけで、ドライバの組込みは自力でやらなければならない、ということになる。
(全部入りDebianはこのサイトのDLメニューからダウンロードできます。自己責任でご利用ください。全部入りにしているので容量は大きくなっています。)http://www.petapico.biz/dl/
何はともあれ、CuBoxで UBUNTU12.10 が走って、Webカメラも動作した。CuBox-i でもUBUNTU12.10 さえ動作すれば同じはず。ということで本題のZoneminderのインストールに進みます。ソースはSolidRunの本家サイト
http://www.solid-run.com/mw/index.php?title=Zoneminder
です。このページのインストラクションには基本の、vimエディタのインストール、ネットワークの環境設定、ntpの話からスタートしているがそれはもうできているものとしてすっ飛ばして、本題に入りましょう。
まずはステップの概要から。
zoneminderのインストール自身はとてもやさしい。おなじみの
apt-get install だけですんでしまいます。
# apt-get install zoneminder
service zoneminder stop
apache2とzoneminderの連携のための設定をして、apache2とzonminderのサービスをrestartする。
すると、webブラウザ経由でアクセスしてzoneminderを操作することができるようになります。
それでは、Zoneminderのユーザーインタフェース画面を出せるようにapache2の設定をします。
/etc/apache2/sites-enabled/000-default
にある
(1)
DocumentRoot /var/www'
->>
DocumentRoot /usr/share/zoneminder
(2)
<Directory /var/www/>
->>
<Directory /usr/share/zoneminder/>
にそれぞれ変更して、
apache2のサービスをリスタートします。
# service apache2 restart
これでzoneminderをセットアップしたCuBoxと同じネットワーク上のマシンのwebbrowserからアクセスしてzoneminderの動作を確認することができます。
http://<IP address of CuBox>/
インストールの最後に、下記のようなエラーがでるようであれば対処する。
•To remove errors -> zmwatch[XXXX].ERR [Shared data size conflict in shared_data for monitor XXXXXX, expected 328, got 316]
/usr/share/perl5/ZoneMinder/Memory.pm
$arch = int(3.2*length(~0)); ->> $arch = 32;
•Fixing Apache2 error:"Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName"
/etc/apache2/httpd.conf
ServerName localhost
を1行足してサービスをリスタートする。
# service apache2 restart
•Fixing php errors complaining about time zone, edit file php.ini and set your timezone, according to http://nl3.php.net/manual/en/timezones.php
/etc/php5/apache2/php.ini
タイムゾーンを変更する。
date.timezone ="Asia/Tokyo"
さて、問題はその次、カメラの接続である。インストラクションのあるページでは、ここからが存在しない。いきなりhttp://www.zoneminder.com/forums/
へ飛ばされてしまう。こんな情報ジャングルで生き延びろというのは難しい。なのでここからが実は大変。続けていこう。
Web画面の最初にすることが、「モニター」の追加即ちカメラ画像である。ここで、localにした場合に、どう考えてもこれでいいはず、という設定では動作しないという問題があった。こんな小さな問題だったのが、解決をしようとすると、どんどん問題が膨らんでしまった。
第1段階はWebカメラが動作することのチェックをします。簡単な確認方法として用いられているのが、Motionの時のチェックにも使った”Cheese”アプリである。
ただし、このアプリで動いたからと言ってzonminderでも使えると決まった訳ではない。Ceeseでは、メモリに転送された映像を見ているのが、zoneminderでは直接の出力を見ることになるからだと説明されている。
ここでは、ひとまず映像が確認できたので次へ。(CuBox-iのUBUNTU11ではCheese自体がクラッシュしました。CuBox-iのUBUNTUの対処は別途コラムのUBUNTU12、Debian 7のインストールを参照ください)
zoneminder のシンプルな画面に戻って、第1ステップは”Add New Monitor”ボタンをおしてモニターを追加すること。GeneralタグとSourceタグを設定する。
http://www.zoneminder.com/wiki/index.php/Uvc
それぞれの設定がすむと、文字の部分がグリーンになる。グリーンの文字は動作している、ということを表している。オレンジ色の場合には、設定が受けつけられているが動作中ではない。黒だと設定が有効でないということを表している。最初は黒のままのはず。
さて、「local」では動作しない理由がいまだに分からないのだがここではあきらめて、Remoteの設定を使う。即ち、ネットワークストリーミングとしての設定である。
これを使うためには、mjpg-streamingのようなものが必要となる。これについては、前のコラム「mjpg-streamerでストリーミング配信」で扱ったのでそちらを参考にしていただきたい。Web画面にWebカメラの映像が映っている状態にあることを前提として、タブの設定をこのようにする。mjpg-streamingはCPUのパワーでストリーミングを実現する上、動体検出もこなすとなるとCPUが非力だと動画の秒あたりのフレーム数が極端に悪くなってしまいます。CuBoxでは幸いCPUが強いのでかろうじて使えます。
タブの値を再設定すると、Web画面上の文字の色が変わったことが確認できます。モニターを見てみると、別ウィンドウに画像が確認できるはずだ。
Modectにするとカメラ画像内で変化を検出する設定となる。カメラの前をわざと動いてみて検出するかどうかを確認してみよう。eventの項目のところがカウントアップするのが確認できる。
そしてモニターのウィンドウを見てみると、下の方にイベントがリストされている。
リストの一つをクリックするとイベント検出した画像が表示されてくる。
Zoneminderならではの、映像領域を限定できることも確認できる。
もう少し使いこんでみてのレポートも予定している。今回はCuBox+UBUNTU12.10へのインストールまでを紹介した。
コメントをお書きください