GeekFactory

int128.hatenablog.com

動体検知アプリケーションmotionを構築する

RHEL系で動体検知アプリケーションの motion を構築する手順のメモです。なお、Gentoo LinuxDebianでは公式パッケージが用意されているのでもっと簡単です。

前提

  • Scientific Linux 6.3 x86_64
  • USBカメラが接続されていて /dev/video? が存在する。
  • /usr/local/motion にインストールする。
  • 設定ファイルのみ /etc/motion にインストールする。

方法

必要なパッケージがインストールされていることを確認します。

sudo yum install gcc gcc-c++ make libtool automake autoconf
sudo yum install libjpeg-devel

DownloadFiles < Motion < Foswiki から tar ball を取得してビルドします。

tar zxf motion-3.2.12.tar.gz
cd motion-3.2.12
CFLAGS='-O3 -march=native -pipe' ./configure --prefix=/usr/local/motion --sysconfdir=/etc/motion
make clean
make -j2
sudo make install

configureでエラーが出ていないか確認しましょう。もしffmpegmysqlを使う場合は必要なパッケージが入っているか確認します。

設定ファイルを編集します。

sudo cp -a /etc/motion/motion-dist.conf /etc/motion/motion.conf
sudo vim /etc/motion/motion.conf

起動スクリプトを配置します。

sudo cp -a motion.init-RH /etc/init.d/motion
sudo chown 0.0 /etc/init.d/motion 
sudo chmod 755 /etc/init.d/motion 
sudo chkconfig --add motion

/etc/init.d/motion を編集します。

--- motion.init-RH      2010-06-01 15:48:23.000000000 +0900
+++ /etc/init.d/motion  2013-01-06 17:00:23.311221853 +0900
@@ -7,14 +7,14 @@
 #              movement based on compare images.
 # processname: motion 
 # pidfile: /var/run/motion.pid
-# config: /etc/motion.conf
+# config: /etc/motion/motion.conf
 
 # Source function library.
 . /etc/rc.d/init.d/functions
 
 
 
-motion=${MOTION-/usr/local/bin/motion}
+motion=${MOTION-/usr/local/motion/bin/motion}
 prog=motion
 PIDFILE=/var/run/motion.pid
 RETVAL=0

追記

起動スクリプトではなくsupervisorでプロセスを管理する方法もあります。詳しくは supervisorでデーモンプロセスを管理する - GeekFactory をご覧ください。