こういうことを可能にする gphoto2 というツールがある。4 年程前 Linux でデジカメの制御をした事があって、その際使わせてもらったことがある。デジカメは PTP というプロトコルを使ってパソコンと通信をする。実際にはカメラメーカーや機種によって PTP の対応具合が違ったり、独自の拡張コマンドを持つカメラもあるようだが、gphoto2 が使っている ptp ライブラリ (libptp) はある程度この辺の違いを吸収した API を提供しているようだ。そして PTP ライブラリは USB インターフェースを使う際 libusb というライブラリを使うのだが、OSX でも最近の libptp, libusb であれば使うことができる。
ただ一連のコンパイルは多少手間取ったのでメモしておく。
まず、 pkg-config と libusbを入れる:
cd pkg-config-0.25/ ./configure --prefix=/usr/local make clean make sudo make install cd ../libusb-1.0.8/ ./configure --prefix=/usr/local/ make sudo make install
libusb-compat-0.1.3 というのも入れる。これがないと libptp を作れない。( libusb の昔のバージョンとの互換性を保つ為のオプションと思われる。)
cd ../libusb-compat-0.1.3/ ./configure --prefix=/usr/local make clean make sudo make install
続いて libptp を入れる。
cd libptp2-1.1.10/ ./configure --prefix=/usr/local/ make clean make sudo make install
ここまで来ると libgphoto2 が 作れるはずだったが configure すると jpeg ライブラリが無いよとなるので、jpeg ライブラリを入れた後に libgphoto2 を入れる。
cd jpeg-8b/ ./configure --prefix=/usr/local/ make clean make sudo make install cd ../libgphoto2-2.4.10.1/ ./configure --prefix=/usr/local/ make clean make sudo make install
あと一息なのだが、 gphoto2 は popt ライブラリを使っている。この popt が多言語対応のプログラムのようなのだが configure で --disable-nls としても gettext を入れろと言ってくる。もうあれこれ入れる元気がなくなってきたので popt2 の configure スクリプトで gettext の有無をチェック所を↓のようにコメントアウトして
#if test ! -f ../rpm.c #then # echo "$as_me:$LINENO: checking for GNU xgettext" >&5 #echo $ECHO_N "checking for GNU xgettext... $ECHO_C" >&6 # xgettext --version 2>&1 | grep 'GNU gettext' >/dev/null 2>&1 || { { echo "$as_me:$LINENO: error: # *** GNU gettext is required. The latest version # *** is always available from ftp://ftp.gnu.org/gnu/gettext/." >&5 #echo "$as_me: error: # *** GNU gettext is required. The latest version # *** is always available from ftp://ftp.gnu.org/gnu/gettext/." >&2;} # { (exit 1); exit 1; }; } # echo "$as_me:$LINENO: result: yes" >&5 #echo "${ECHO_T}yes" >&6 #fi
ビルドした。
cd popt-1.7/ vi configure ./configure --prefix=/usr/local/ --disable-nls make clean make sudo make install
やっと gphoto2 にたどり着いてちょっとつまずいたが↓のように configure を叩くと make が通るようになった
cd ../gphoto2-2.4.10/ PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ ./configure --prefix=/usr/local/ --disable-nls --with-libgphoto2=/usr/local/ --without-readline make clean make sudo make install
PTP というのはカメラメーカー、機種によって対応具合がまちまちなようだが、EOS 20D ではシャッターを切って、画像を転送することが出来た。カメラを PTP モードにして試すとうまくいかず、何故か通常モードにするとうまくいった(色々と試していると、たまに BUS エラーとか出たが私にとっては一応使えそうだ)。IXY digital 930IS も試してみたがこっちはシャッターが切れなかった。(あるいは画像の転送は出来るのかもしれないが試していない)。
参考リンク: harvey.nu
0 件のコメント:
コメントを投稿