TenForward

技術ブログ。はてなダイアリーから移転しました

thunar-volman on Plamo 4.6 (1)

(2) があるか謎だけど.(^_^;)

ここ数日 HAL やら PolicyKit やら調べてますが,xfce で CD が挿入されたり,USB メモリがさされた場合に自動的にマウント出来ないかと思ってやってみました.4.6 標準では udev 内でスクリプトが仕込まれていて,pmount でマウント,という動きにはなってますが,一般的なディストリビューションの動きと若干違うようなので (CD も USB メモリもあまり使わないので正直,私はどっちでもイイのですが :-p) .HAL のドキュメントとか見てると実際のマウントなんかは,各デスクトップ環境の *-volume-manager が行うみたいに書いてあったので,それにしたがうような設定をしてみようと.

とりあえず /etc/fstab の cdrom 関係のエントリをコメントアウトしておきます.

#/dev/cdrom       /cdrom   iso9660   user,ro,noauto,exec,iocharset=euc-jp 0   0
#/dev/scd0       /cdrom   iso9660   user,ro,noauto,exec,iocharset=euc-jp 0   0

とりあえず HAL の設定ファイルをざっと眺めて見ましたが,なんとなくデフォルトのファイルでそれなりに動きそうです.動きが謎な所は多いものの.

で,Thunar の設定画面を見てみると,『Thuanrでボリューム管理サポートを利用するには「thunar-volman」パッケージをインストールしてください』とあったので,とりあえずこれをインストールしてみました.

http://goodies.xfce.org/projects/thunar-plugins/thunar-volman:thunar-volman から 0.2.0 というのを取得して,

$ ./configure --prefix=/usr --infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --mandir=${prefix}/share/man
$ make
# make install

のように普通にインストール

そのままこんな感じで設定.

でも,そのまま CD 挿入されると (ここでは VMWare で CD ドライブを接続),こんなエラーが.

Plamo 4.6 の /etc/PolicyKit/PolicyKit.conf は空なので,失敗しているのだろうということで,とりあえず


  
    
  

のようにすると,とりあえず "defiant" ユーザでは成功しました.とりあえず方針としてはこれで OK みたいです.

ただ,これでは汎用的じゃないので,さて PolicyKit をどう設定したものか,というところですね.

thunar-volman on Plamo 4.6 (2)

thunar-volman では全然ないエントリになりますが,(1) で実現出来なかった,もっと汎用的というか,Plamo をインストールしただけで,もう勝手に USB メモリやら CD なんかがマウント出来てほしい,というのを実現する方法.

結論から言うと,PolicyKit も hal も何もいじらなくて OK っぽいですね.hal は一部やった方がよさげな設定があるような気がしますが.(1) でやった /etc/PolicyKit/PolicyKit.conf の編集も不要.

  1. まず dbus 関係の machine-id というファイルがないので,console-kit-daemon が動きませんでした.動くんですが,ck-launch-session とかやると,そこでお亡くなりになっている模様.そこで
    # dbus-uuidgen > /usr/var/lib/dbus/machine-id
    とやって作成.
  2. console-kit-daemon を動作.
    # /etc/rc.d/init.d/console-kit-daemon start
  3. 私は runlevel 3 なので,~/.xinitrc で
    exec startxfce4
    とやっていたのを,
    ck-launch-session startxfce4
    と変更.
  4. これで startx して,USB メモリを挿すと,問題なくマウントされます (Thunar が起動します).

runlevel 4 (gdm の場合)

  1. /etc/rc.d/rc.4 で
    ck-launch-session /usr/sbin/gdm -nodaemon
  2. これでログイン後
    $ ck-list-sessions
    で Session が表示される.
  3. この状態で USB メモリさすと,特に PolicyKit.conf の設定なしでマウント!!

gdm を使う場合,特に何もしなくてもセッションが生成されてるっぽいので,特に何も不要な感じです.

kdm の場合,consolekit 対応のパッチが要るとかなんとか... (よく知りません)

(2009/03/09 追記)
dbus の machine-id は,起動時に

dbus-uuidgen --ensure

とやると,なければ作る,あればそれを使う,となる模様.(Plamo-4.6/不具合報告/5より)