apmsleep(1) サスペンド/スタンバイモードに入り、後で復帰する

書式

apmsleep [-sSnwhVd] [--suspend] [--standby] [--noapm] [--wait] [--help] [--version] [--debug] [+]hh:mm

説明

コンピュータの中には (特にラップトップには)、 リアルタイムクロック (RTC) を用いて 低電力サスペンドモードから DRAM モードに復帰できるタイプのものがある。 apmsleep を使うと、RTC の「目覚まし時刻」を設定してから システムをサスペンドモード・スタンバイモードにすることができる。 RTC からの割り込みがあると、コンピュータは目を覚ます。 このプログラムは、カーネル時刻の不連続な変化 (leap) を待つことによってこのイベントを検知し、成功を返して終了する。 一分以内に時刻の leap がなかったり、何かまずいことがおこったら、 0 以外の値を返して終了する。

復帰時刻の指定には 2 つの形式がある。

+hh:mm は現在の時刻からの相対的なオフセットを指定する。 コンピュータが復帰するまでには、 hh 時間と mm 分に加えて何秒かが必要となる。

hh:mm は復帰時刻を 24 時間フォーマットのローカル時刻で指定する。 RTC に保存されているのが GMT かそうでないかは気にしなくてよい。 TZ 環境変数でタイムゾーンを変更していても良い。 夏時間はこのバージョンでは考慮していないが、将来は対応する予定である。

オプション

-V, --version
ampsleep プログラムのバージョンを表示してただちに終了する。
-s, --suspend
可能ならマシンをサスペンドモードにする (デフォルト)。 作者のラップトップでは、サスペンドモードはメモリ以外のすべての電源を遮断する。
-S, --standby
可能ならマシンをスタンバイモードにする。 作者のラップトップでは、スタンバイモードは スクリーン・ハードディスク・CPU の電源を遮断する。
-w, --wait
時刻の leap をいつまでも待ち続ける。
-n, --noapm
コンピュータをサスペンドさせるときに /usr/bin/apm を呼ばない。 アラームクロックを有効にして時刻の leap を待つだけ。
-d, --debug
何が起こっているのか、情報を表示する。

必要となるシステム設定

カーネル
スペシャル・キャラクタ・デバイス /dev/rtc が存在し、 Linux カーネルを APM と RTC をサポートするように コンパイルしておかなければならない (CONFIG_RTC と、適切な CONFIG_APM* オプション)。
BIOS
BIOS 設定で、コンピュータの "suspend to RAM" 機能を 有効にしておかなければならない。 "suspend to Disk" は動作しない。 これはコンピュータの電源を完全に遮断してしまうからである。 ALARM タイマーは有効にしなくてもよい。これは apmsleep によって有効にされる。ボードによっては、 サスペンドモードから復帰させる割り込みを選べることもある。 このようなボードを使っている場合は、キーボード (IRQ 1) と RTC (IRQ 8) がその中に含まれているかを確かめておくと良いだろう。
権限
このプログラムは root 権限で実行するか、 SUID 属性を設定する必要がある (chmod(1) を見よ)。

バグ

apmsleep はどのイベントがサスペンド状態を終了させたかを検知できない。 可能性のあるものは、キーボード・マウスへの入力、モデムへの着信、 RTC からのアラーム、その他あらゆる割り込み、など。

このプログラムは Winbook XL ラップトップ (Pentium) でしかテストされていない。 あなたのハードウェアでは動作しないかもしれない。

著者

このプログラムは Peter Englmaier ([email protected]) によって書かれ、 GNU 一般公共使用許諾のもとで自由に再配布できる。 このコードは Paul Gortmacher の RTC テスト/例示プログラムを元にしている。 このプログラムは「完全に無保証」である。現在の管理者は Peter Englmaier である。