LinuxでIXY

以前使っていたコニカミノルタX20はマスストレージデバイスだったから、IXY DIGITAL L3が非対応とは考えてなかった。専用ソフトが必要らしい。CDROMもついてきてるけど当然Linux非対応。PTPというプロトコルで通信している。LinuxでPTPを扱いたい場合、昔からgphotoというライブラリを使っているみたい。

オフィシャルサイトのリストにL3は載っていないけどたぶん動くと思うので、よくわかってない状態でlibgphoto2-2.1.1をインストール。本体同じで名前変えた欧州版とか北米版とかがあるのでメーカの海外向けサイトで確認したほうがいい。インストールの仕方がBLFSのDevelopment版にも載っていない場合、LFSの公式(?)wikiで探すと良い。http://wiki.linuxfromscratch.org/blfs/wiki/Libgphoto2
後で分かったことだけど、L3はcanonドライバではなく、汎用(?)のPTP2ドライバを使っているのでconfigureは以下になるっぽい

./configure --prefix=/usr --with-drivers=ptp2

libgphoto2はただのライブラリで、実際に通信したい場合はフロントエンドが必要になる。gphoto2(CUI)やgtkam(GUI)がそれ。gqviewの使い勝手が最高に良いと感じてるので中途半端にビューワとかぶりgtk1のgtkamは入れないでgphoto2-2.2.0を入れた。

...ここから紆余曲折を経てやっと使えるようになった。オフィシャルサイトのManualは内容がすこーしだけ古いのでLFSでカーネルの最新を追いかけ、udevも最新の人は注意!PTPカメラをつなぐと/dev/bus/usb以下のどこかにデバイスが出来る。通常それはrootユーザしか書き込めないので一般ユーザでgphoto2を実行しても認識してくれない。カメラ接続後自動的にパーミッションを設定する工夫が必要になる。そこでlibgphoto2ではhotplugやudev rulesを用いるようにするツールをパッケージにいれてある。しかし私の環境(Kernel 2.6.16.27,udev 103)ではhotplugはobsoleteだし、udev rulesに記述するのもうまくいかなかった。PTPカメラはudevでは扱ってくれないらしい(曖昧)。ところがManual全部無視してwikiにあったusbfsを使った方法にしたらすぐできた。(libusb-0.1.12ともしかしたらカーネルのサポートが必要)
/etc/groupを変更

usb:x:14:<ユーザ名>

fstabに以下を記述。再起動(再マウント?)が必要

usbfs          /proc/bus/usb usbfs devmode=0660,devgid=14 0 0

この辺でだいぶ混乱した。2004年の情報のままgoogle上位に来る解説サイトが多いしmurasakiを使った方法しか日本語だとひっかからない。/sbin/hotplugでさえ今はudevに取り込まれたようだし。いくら/etc/hotplug/usb.usermapいじっても動かないわけだ…いまだにmurasakiを使う理由ってなんだろう?仕様がudevみたいにふらふらしてないのと解説サイトの多さ?素人の私にはわかりません

PTPはマウントする手間がなく、割とカメラの情報を覗けたりする。カメラの電源をいれて以下のコマンド

$ gphoto2 --summary
カメラのサマリ:
型式: Canon IXY DIGITAL L3
  デバイスのバージョン: 1-2.0.1.0
(以下略)

これが成功するなら-Pで全ファイルを取り込んだりできる。詳しくはgphoto2 --helpで。ちなみに上記の型式はlibgphoto2がサポートしていて判別したわけじゃなく、単に本体から情報を引っ張ってきてるみたい。