N=1

主にコンピュータ技術関連のことを投稿。 / 投稿は個人の意見であり所属団体の立場を代表するものではありません。

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がサポートしていて判別したわけじゃなく、単に本体から情報を引っ張ってきてるみたい。