2007年3月15日

Debian/etch で Gnome Power Managerをつかってサスペンドする

Ubuntu で整理されたお陰かどうか分からないが、Power Manager が整理されつつある。そろそろ、Debian/etch でも使えるんでないかとやってみる。

apt-get install acpid acpi-support gnome-power-manager

すると、Gnomeの通知スペースにバッテリ状況を表す電源管理アイコンが表示される。またメニューに出てくる項目を選択すると サスペンド/ハイバネーションが出来るようになる。

で、メニューから選択すると、、、、なんかエラー表示がでて動かない。

エラーの理由が全く示されていないだけでなく、どこにも手掛かりになる情報が示されず、、、FAQのページを確認することを促される。

対処の方法が分かりませんって状態になってしまった。

どっかのログファイルにでも追加情報が出ているのかと思ったが、何もない。 なんとWin○○sっぽくなったのだろうか。

一晩調べてみて、熟考の結果うまく動くようになった。

従来の流れでは、

(acpiのイベント)
=> acpid でフック
=> イベント種別から /etc/acpid/events 以下の設定でスクリプトを選択
=> 大抵 /etc/acpid/suspend.sh が呼ばれる。

なので、 /etc/acpid/suspend.sh を自分のPCに合わせて変更する。

Gnome Power Manager を使う場合は、

(acpiのイベント)
=> acpid でフック
=> acpi-support パッケージにより、キーイベントに変換され、/dev/inputXに渡される。
=> Xサーバ君がキーイベントを受ける
=> gnome-power-manager がキーイベントを受け取り?、
    ディスクトップのユーザ設定に応じて処理を決めて、
    サスペンド/ハイバネーションの要求を dbus 経由でHALに出す。
=> HAL で、スクリプト
   /usr/lib/hal/scripts/linux/hal-system-power-suspend-linux を呼び出す
=> 上記のスクリプトから、acpi-support で作成された /etc/acpid/suspend.sh が呼ばれる

acpi-support を作ってくれる人が頑張ってる限り、なんもしなくても大丈夫なんだなぁ。

HAL側のサスペンド/ハイバネーションのインタフェースorg.freedesktop.Hal.Device.SystemPowerManagement を 呼び出す為には、rootユーザ権限かpowerdevグループ権限が必要である。これは、Debian特有っぽい。

gnome-power-manager がこいつの問題に引っかかって、うまくサスペンドしなかったらしい。 次のコマンドをユーザ権限でサスペンド出来なければ、権限の問題っす。

dbus-send --system --print-reply   --reply-timeout=2000 \
           --dest=org.freedesktop.Hal \
           /org/freedesktop/Hal/devices/computer \
           org.freedesktop.Hal.Device.SystemPowerManagement.Suspend

こいつは、FAQの2番目に上げられている。でも、FAQに載ってるメッセージは出てこないぞ、、、。

対処は、powerdev グループにユーザを追加して再起動。。。ちょっと快適

0 件のコメント:

Cocoa Emacs 24.3 構築 (2013/03版)

暫く使っている Cocoa Emacs を更新していなかったので、24.3 に上げてみた。 当てるパッチは inline patch と ポップアップフリーズ対応パッチ くらい。 24.3 には既にフルスクリーン実装が入っているので、よく使われているフルスクリーンパッチは外し...