# apt-get install pkg-config
# ./configure --host=sh4-linux --build=i686-linux --exec-prefix=/mnt/sh # make # make install
# tar -zxvf libgphoto2-2.1.5.tar.gz # cd libgphoto2-2.1.5 # ./configure --host=sh4-linux --build=i686-linux --exec-prefix=/mnt/sh # make # make installただしgccのバージョンによって、微妙なところで ひっかかる。
... gphoto2-port-log.h:49: argument format specified for non-function `GPLogFunc' make[2]: *** [gphoto2-port-info-list.lo] Error 1小島さんの情報([Iohack-users 112])により
- #if (__GNUC__ >= 3) + #if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) __attribute__((__format__(printf,3,0))) #endifと*.cを修正して、gcc-3.0.4をうまくすり抜けさせる。 (ほかにも数箇所あった)
# tar -zxvf gphoto2-2.1.5.tar.gz # cd gphoto2-2.1.5 # ./configure --host=sh4-linux --build=i686-linux --exec-prefix=/mnt/shと、こんなエラーがでる。
... checking for libgphoto2 >= 2.1.2... Package libgphoto2 was not found in the pkg-config search path. Perhaps you should add the directory containing `libgphoto2.pc' to the PKG_CONFIG_PATH environment variable No package 'libgphoto2' found configure: error: Library requirements (libgphoto2 >= 2.1.2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.書いてあるとおり、libgphoto2.pcがある場所が見つからないようなので、 次のようにする。
# PKG_CONFIG_PATH=/mnt/sh/lib/pkgconfig ./configure --host=sh4-linux --build=i686-linux --exec-prefix=/mnt/shちなみに/usr/local/libなどにlibgphoto2などがインストールされた場合は、 gphoto2が探せないので、
# export LD_LIBRARY_PATH=/usr/local/libとして、LD_LIBRARY_PATHを設定しておく。 ちなみにこの変更を恒久的に設定するには、 ~/.bashrc_profileに書くか、/etc/profile(すべてのユーザの場合)に書く (ref)
コンパイルは添付のREADME通りだが、 なぜかセルフコンパイルでは、 最後のリンクのところででの「-lusb -lptp2」を 最後にもってこないとなぜかだめみたい。
使い方は、
# capture --help # capture 'capture hoge.jpg' # capture 'flash off'など。 ちなみにビープ音を消す(PDC_CANON_BeepMode)や AF補助光を光らせない(PDC_CANON_AssitLight)といった項目も 設定できる(カメラが多い)ので、command.c, capture.h, properties.{c,h}の書き方を 参考に拡張しておくと便利な場合も。
0-59/10 * * * * /root/takePicture.shこれを/var/spool/cron/crontabs/rootに書いておく
#! /bin/sh LOCATION=Mt.Hakodate INDEX_HTML=/var/www/index.html export LD_LIBRARY_PATH=/usr/local/lib /bin/capture 'quit' sleep 1 /bin/capture 'start' /bin/capture 'flash off' FILENAME=`/bin/date +%Y_%m_%d_%H%M`.jpg /bin/capture 'capture /tmp/_tmp_.jpg' cat << EOT > $INDEX_HTML <h1>camera @ $LOCATION</h1> (last update: `/bin/date +%Y/%m/%d_%H:%M`) <br> EOT if [ -f /tmp/_tmp_.jpg ] then /bin/mv /tmp/_tmp_.jpg /var/www/images/$FILENAME /usr/local/bin/convert -geometry 640x480 /var/www/images/$FILENAME /var/www/latest_s.jpg cat << EOT >> $INDEX_HTML <a href="images./$FILENAME"><img src="latest_s.jpg"></a> EOT else cat << EOT >> $INDEX_HTML (temporary unavailable) EOT fi
<a href="latest.jpg"><img src="latest_s.jpg"></a>