Shino's Bar

お家で使うLinux Tux

デジカメを扱う (自動マウント編)

1 Oct 2003 ( 初出: 13 Dec 2002)

GQviewの導入

GQviewは画像の一覧表示ができて便利なのでこれを導入します。VinePlusにRPMパッケージがあります。

マウント・ポイントの準備

マウント・ポイントとして例えば /mnt/camera ディレクトリをあらかじめ作っておきます。 また /etc/fstabにマウントオプションをセットしておきます。

/dev/sda1    /mnt/camera    vfat    noauto,user,ro    0  0

他にSCSIのハードディスクなどを接続していなければ sda1 になりますが、 接続の状況が変わるとこれが異なります。 カメラを接続して dmesg を見ると分かるでしょう。

通常デジタルカメラは書き込みもできるのですが、安全のために書き込み禁止(ro)でマウントするようにしました。 GQviewの一覧表示を利用して画像の整理(消去)をパソコンから操作したいという方はこのroオプションを外してください。

murasakiによる自動スクリプトの起動

Vine Linux 2.5/2.6で標準となっているHotPlugマネージャー murasaki によるスクリプトの自動起動を利用します。 murasakiの設定ファイル群は /etc/murasakiディレクトリ以下にあります。 USB機器が接続されるとmurasakiは機器のVendorIDとProductIDを取得して、まずmurasaki.usbmapを参照します。 次に murasaki.depend に記載された必要なモジュールをロード、 このあと 記載されたプログラムを起動します。 カメラの付け外しのさいに必要な作業をするスクリプトを用意してmurasaki.callに登録しておけば目的の動作ができるはず。

OLYMPUS-4040Z の場合、何も設定を変えなくても、 カメラを接続し電源を入れると murasakiは usb-storage (といくつかの)モジュールをロードします。 他の機種でも usb-storage が使えるものはたいていこのままで良いはずです。 (たとえばOLYMPUS-3030Zは usb-storageが使えないので、libusbとgphoto2が必要)

ここで /etc/murasaki/murasaki.call に次の行を追記、あるいはmurasaki.callが存在しなければ新しく作成します。

usb-storage: /etc/murasaki/bin/camera

これによりmurasakiは usb-storage モジュールをロードしたあと スクリプト camera を呼び出します。 また カメラが外されたときusb-storage モジュールをアンロードし、 ふたたびcamera を呼び出します。 接続のときは第一引数に 'start' という文字列を、外すときには 'stop' を引数とすることで区別します。

スクリプトの作成

これでスクリプト/etc/murasaki/bin/camera が起動される準備ができました。 /etc/murasaki/bin ディレクトリを作成し、 この中に camera の名前で実行属性を付けて置いておきます。 このスクリプトは単純に自動マウントとアンマウントする

#!/bin/bash
CAMDIR=/mnt/camera
case $1 in
    start)  mount  ${CAMDIR} ;;
    stop)   umount ${CAMDIR} ;;
esac

のようなものでも良いのですが、もう少し凝ったものも用意しました。 こちらのスクリプトは カメラを接続すると自動的にマウントした後 GQviewを立ち上げます。 GQviewが開くべきディレクトリはカメラのメーカーによって異なるので スクリプト中の変数 'VIEW' を変更してください。

うまく動作しない場合はカメラの電源を入り切りしたときの
# tail /var/log/messages
(root権限が必要です) でmurasakiなどの出力をチェックするとよいでしょう。

Links

ご意見、お問い合わせは E-mail で マスターまで
Shino's Bar goto [シノバー店内案内] [MPEG2最前線!] [お家で使うLinux]