【ハイバネ】安全なスリープ【休止状態】

このエントリーをはてなブックマークに追加
1名称未設定
片面二層が焼けるSuperDriveを搭載しているPoworBookでは
Safe Sleepが使われているそうです。
http://docs.info.apple.com/article.html?artnum=302477

Safe Sleepでは、HDDにメモリ等の情報を書き出した後、Sleep状態に移行します。
バッテリーが外され電源が切れても、HDDに書き出されたデータから復旧出来るのが
通常のSleepとの違いです。この場合は少し時間が掛ります。

電源が切れなかった場合は通常の復旧になり、掛る時間は以前のままです。

Safe SleepはSleepに比べ、スリープへの移行に若干時間が掛るのが欠点です。

ファームを設定することで、古いノートでも使えるようです。
iBook G4 ? 12" 1GHz, 14" 1.2GHz, G4 800MHz
PowerBook ? 1.25GHz, 1GHz, 1.5GHz, 15" 1.67GHz
http://matt.ucc.asn.au/apple/machibernate.html

pmset -a hibernatemode 3 はSafe Sleep。
pmset -a hibernatemode 1 はハイバネのみ。
pmset -a hibernatemode 0 はSleep。

手元のiBookで掛る時間を計測してみました。少し意外な結果になりました。
iBook G4 800MHz 12inch 1.12GB (1024+128オンボード)
pmset -a hibernatemode 0、移行6秒、復旧3秒。
pmset -a hibernatemode 3、移行15秒、復旧45秒(電源を断った場合)、復旧3秒(電源を断たなかった場合)。
pmset -a hibernatemode 1、移行23秒、復旧30秒。
hibernatemode 1と3がなぜこのように違うのがか不明です。
2名称未設定:2005/11/17(木) 18:12:35 ID:X50cPhoS
以下、私見です。
XPに比べ、Macのスリープは以前から消費電力が微量で移行復旧共に速く、実用になっていました。
一日中スリープしていても5%ぐらいしか減りませんので、ハイバネの必要性さえ感じていませんでした。
(私はバッテリー交換をしませんので)
XPではスタンバイを使うと、消費電力が高いので、移行時に次にノートを使うまでの時間を考え、休止状態を使い分けてました。
休止状態に移行した直後にPCでの作業をしわすれて、度々いらついてました。
(ノートによって待機時の消費電力が大幅に違うのかもしれませんが)
身の回りのXP使用者は、スタンバイと休止状態を使い分けたほうがよさそうなノートPCの使用形態をしているにもかかわらず
良く知らない方や、シフトを押すと「スタンバイ」が「休止状態」へ変わることを知らない人も多いです。
このような方々が、スタンバイと休止状態のどちらが適していても恩恵を受けられる、この度のMacのような実装は好きです。
ですが、hibernatemode 0の速さでHDDが止まる、といった安心感も好きですので
XPのように「Optionキー」で「すぐスリープ」といった操作も出来たらと思います。
3名称未設定:2005/11/17(木) 18:43:08 ID:5knL0TAc
PoworBook
PoworBook
PoworBook
4名称未設定:2005/11/17(木) 20:12:58 ID:cURuliVc
4444
5名称未設定:2005/11/17(木) 20:27:04 ID:6qvrXGtT
そしてこのスレで何を議論すればいいのか
6名称未設定:2005/11/17(木) 20:27:40 ID:WigbLdsp
SafeSleep って 10.4.3 以降じゃないと使えない?
あと今までの Sleep で気になるのはディスプレイあけたら Sleep解除しちゃうところ
キーかパワーボタン押し、で解除してほしいんだけど
7名称未設定:2005/11/17(木) 20:31:09 ID:IKV6VtCL
>>1
Z
8名称未設定:2005/11/17(木) 20:31:18 ID:N+KBx04Y
>>1
ブログにでも書いてろアホ。
9名称未設定:2005/11/17(木) 21:46:11 ID:yPhh4s6J
私見では>>2はS1とS3の区別が付いていないように思えるな。S3だけなら5W未満、多分1〜2W
しか消費しないぞ。S1は高いと思うけどね
10名称未設定:2005/11/18(金) 00:31:03 ID:FnlPAONC
>>6
Tiger以降ならこれでふたを開けてもスリープ解除しなくなる
sudo pmset -a lidwake 0
スリープ解除にはキータイプで。
SafeSleepは10.4.3以降でないと不可。
11名称未設定:2005/11/18(金) 00:31:27 ID:Or085key
具体的にどうやるのかが初心者すぎてわかんない。
誰か日本語で説明してよ。
12名称未設定:2005/11/18(金) 01:07:21 ID:oFi2/ogA
まったくだ
せっかくスレがあるならわかりやい説明希望
13名称未設定:2005/11/18(金) 11:42:30 ID:oVMe7rgx
>>1からスクリプトをダウンロードして実行

オープンファームウェアに書き込む内容はややこしいので
スクリプトに頼るが吉。iBookででゅあるモニタ化してると
起動不能になるかもしれないので、複合スクリプトを使え、このボンクラ。
あ、ハイバネしてるマシンをターゲットディスクモードにしたらぶん殴るからな。

sudo pmset -a hibernatemode n
でスリープモードを切り替える。safe-sleepはスタンバイとハイバネ
をいっぺんにやってメモリがおじゃんならハードディスクから復帰。
pmset -p を見ると分かるがハイバネイメージを変更可?

powerbook12in 1.5Ghzで動作確認。HDDが止まるまで動かすべからず。
USBやFirewireには何もつないでいない。つないでたらどうなるかは知らん。
14名称未設定:2005/11/18(金) 17:46:12 ID:8dkeSCR8
良スレ。
15名称未設定:2005/11/18(金) 18:46:12 ID:P2l4AMt7
考えてみるとMacIntel移行と同時にハイバネ実現かと思ってたけよ
このタイミングで今また前回の失敗の轍を踏むことは無いように感じるな
16名称未設定:2005/11/28(月) 00:49:12 ID:fixzkOq7
省エネルギーのコンパネから設定できればな
17名称未設定:2005/11/30(水) 12:53:02 ID:NHJKMkhF
>>2
Windows�ノートだって機種によってはスリープが実用的につかえていた。
正直1日スリープして5%しか減らない機種なんてのは昔から普通にあった。

自分がたまたま糞機種で使ったからといってXPを貶すのはどうかと思うが。

今回のsafe-sleep相当のことはwindows機ではlibretto 50がはるか昔に
実現していたことなのでいまさら何をという気もする。
18名称未設定:2005/12/01(木) 07:17:04 ID:l1fv0w9W
機種によってはたまたま糞機種
19名称未設定:2005/12/01(木) 08:06:32 ID:SD2U7hya
最近WindowsのまねばかりしているMacだけどユーザーにとっては良い傾向だね
もう少し他の部分も早く追いついて欲しい。IntelMacに期待大だね
20名称未設定:2005/12/01(木) 09:56:02 ID:Kui1AlvW
いい部分はドンドン真似してほしい所存
21http://matt.ucc.asn.au/apple/machibernate.htmlの粗訳1:2005/12/08(木) 22:14:19 ID:x0gRW1fZ0
新しく無いMacでもハイバネートしよう


2005年10月に発表された新しいpowerbook(高解像度&二層焼き対応スーパードライブ)
の面白い機能はセーフスリープだ。ramの電源を落とさず(通常のスリープ)、にそ
れに加えて、セーフスリープではメモリの内容をディスクのファイルに書き出すの
だ(ハイバネート)、そのためバッテリーが切れたり、取り外されたりしても、今
までのスリープとは違い、システムの作業内容は消えない。もしPowerbookの電源
が残っていれば、通常のスリープとして復帰する。

動作の仕組みに興味がなく、すぐにセーフスリープを可能にしたいならここから。

この機能はもっぱらソフトウェアにより実現されている機能だ、Linuxではこれを
「Software Suspend」と呼んでいる。高解像度powerbookの数週間後に10.4.3がで
たが、これに「新しい機能」がいくつか追加されたっぽいのだ。

テストはすべて、iBook 1GHz(ramは1.25GB, 10.4.3)で行われた。kextstatコマン
ドでAppleKauaiATAドライバの使用が表示されてさえいれば、私は他のMacでも動く
と思う。
22粗訳2& ◆R7PNoCmXUc :2005/12/08(木) 22:19:23 ID:x0gRW1fZ0
動作のからくり

10.4.3の変更点を探るにあたり、最初に立ち寄るところはDarwin sourcecodeだ。
xnuパッケージ(カーネルそのもの)において、hibernateでgrepコマンドをかけて
みると、xnu-792.6.22/iokit/Kernel/のディレクトリでいくつかのファイルが引っ
かかる。IOHibernateIO.cpp が特にくさい。

何度かファイルへのハイバネートをしようとして失敗した後、ATAドライバが
IOPolledInterface をサポートしていないように思えてきた。そしてついに、
AppleKauaiATAが実際に(Openfirmwareの)"ata"デバイスの"has-safe-sleep"プロパ
ティをチェックし、それが設定されているインターフェースのみ
IOPolledInterfaceが可能であることに気づいた。(これは新しいPowerBook 15"の
「ioreg -l -w 0」コマンドの出力を見ることではっきりした。)

/System/Library/Extensions内で"has-safe-sleep"でもってgrepコマンドをかけて
みるとAppleMacRISC2PE (PE="Platform Expert")が捜し物の候補のようだ。で
は、ソースをチェックしてみよう。
23粗訳3:2005/12/08(木) 22:21:36 ID:x0gRW1fZ0
(MacRISC2.cppより):

bool MacRISC2PE::platformAdjustService(IOService *service)
{
bool result;
if (IODTMatchNubWithKeys(service, "kauai-ata"))
{
IORegistryEntry *devicetreeRegEntry;
OSData *tmpData;

devicetreeRegEntry = fromPath("/", gIODTPlane);
tmpData = OSDynamicCast(OSData, devicetreeRegEntry->getProperty
("has-safe-sleep")); if (tmpData != 0)
service->setProperty("has-safe-sleep", (void *) 0, (unsigned int) 0);
}


なお、新しいPowerBookのioregコマンドの出力には、確かに"has-safe-sleep"とい
うルートレベルの項目が存在した。


Macをだまそう

まず、この作業はAppleにサポートされていないということを肝に銘じておくこ
と。セーフスリープ機能が、私の知らない新しい機種のみの「ハードウェア」の機
能としサポートされているのには、きっとわけがある。警告しておく。大多数のG4
ではうまく動作するようだが、例外的に12" 867MHz PowerBookではうまくいかない
のだ。
24& ◆AIssGiio76 :2005/12/08(木) 22:23:28 ID:x0gRW1fZ0
"has-safe-sleep"プロパティを作成するため、起動時にOpenFirmwareモードでいろ
いろする必要がある。が、iBookデュアルモニタ化hackのような他の素晴しいhack
で使われているように、nvramrcコマンドを代わりにに使うのがよい。(iBookデュ
アルモニタ化hackはページの下の方で説明する。)



基本的なopenfirmwareコマンドは以下の通り。


" /" select-dev
" something" encode-string " has-safe-sleep" property
meaning "Create a 'has-safe-sleep'='something' property in / of the
device-tree".

私はセーフスリープに関連する値を設定するスクリプトをいくつか作ったので、解
凍してターミナルで実行してみてほしい。

ハイバネートhackはiBookのデュアルモニタ化hackと干渉するので、2つのhackを同
時に設定するスクリプトも入っている。このスクリプトをまだデュアルモニタ化
hackを当ててないiBookに使ってはいけない。マシンによっては危機的な状態にし
てしまう。私のバージョンのスクリプトではオリジナルがやる程のチェックを一切
しない。

25粗訳5:2005/12/08(木) 22:25:30 ID:x0gRW1fZ0
うむぅ..

残されたステップはハイバネートモードを有効にすることだ。確認して欲しいの
は、最低でも物理メモリ+750MBぐらいの十分なディスクの空きがあること。ディ
スクの容量に問題がなければ、ターミナルで"sudo pmset −a hibernatemode 3"と
打って実行する。このときに/var/vm/sleepimageというファイルが作成される。

(もしあなたがセキュリティ環境設定パネルで安全な仮想メモリを有効にしている
場合、暗号化されたハイバネートモードが使われないようにするために
hibernatemode は3ではなく7を使うべきだ。私にはなぜかよく分からないが、いく
つかの理由で暗号化されたハイバネートは動作しない。ただし、安全な仮想メモリ
を有効にしていないのにhibernatemodeを7にしてはならない。)


hibernatemodeを1に設定(安全仮想メモリなら5)すると、ハイバネートした直後
に電源が落ちる。

0に設定するとハイバネート,セーフスリープは無効になる。

26粗訳6:2005/12/08(木) 22:27:02 ID:x0gRW1fZ0
OpenFirmwareの変数をセットするために再起動し、液晶を閉じて、スリープランプ
が点滅するのを待ってみよう。

まだ電源をはずさずに、普通に復帰させて/var/log/system.logを見てみよう。
こんな行があればうまく動いている。

Nov 2 14:27:17 computername kernel[0]: System SafeSleep

ここまで大丈夫なようならば、実際に試して見よう。スリープさせて(ランプが点
滅したのを確認して)、電源とバッテリーを取り外す、そしてランプが消えるのを
待つ。(powerbookではしばらく点滅したままなので)

電源を元に戻し、電源ボタンを押して起動してみよう。進行状況を表示するものが
出てきて少し画面が点滅したのち、スリープしたときの状態に戻る。(多量のディ
スクアクセスを伴う)

一言警告しておくと、ハイバネートしているMacでターゲットディスクモードを使
うなということ。最終的にファイルシステムが破壊されるかもしれない。

どうでしょう?ではグッドラック。
27粗訳7:2005/12/08(木) 22:30:03 ID:x0gRW1fZ0
問題点

挑戦した人たちからいくつか報告をいただいた。以下のマシンでうまく動作すると
のこと。

* iBook G4 ― 12" 1GHz, 14" 1.2GHz, G4 800MHz
* PowerBook ― 1.25GHz, 1GHz, 1.5GHz, 15" 1.67GHz
* eMac ― 1GHz (running 10.4.3 Server)
* Mac mini ― 1.4GHz

総合的に見て、2003年9月以降のほとんどの G4で動くはずである(すべてのアルミ
製powerbookを含むが、12" 867Mhzは定かではない)。誰かG5でうまく動作したな
ら興味があるのでぜひ聞かせて欲しい。

Peter Steinerからのレポートによると、彼の12" 867MHz PowerBookはセーフス
リープモードを有効にするとファンが停止し、スリープ中にマシンの時計が止まっ
てしまうそうだ。数人が12" 867MHz PowerBookでトラブっているようなので、この
機種ではこの機能を使わないのが一番だろう。

またブルートゥースがONにされ、OFFにできなくなったという報告も見かけた。何
でこのようなことが起こるのかはわからない(こういう理由だという提案は歓迎)。
スリープ中に時計が止まってしまうのを確認した人も何人かいる。モデル固有の問
題だと思われるが、よくわからない。
28粗訳8:2005/12/08(木) 22:32:19 ID:x0gRW1fZ0

2人ほどからの、壊れたハイバネートイメージに関する問題の報告もみかけた、何
度再起動しても、壊れたハイバネートイメージを読み込もうとするためにカーネル
パニックを繰り返すという報告を聞いた。これは、先に述べた「安全な仮想メモ
リ」をオンにしているにもかかわらず、適切なhibernatemodeを設定していない場
合に起こりうる。

もし、壊れたハイバネートイメージで再起動とクラッシュを繰り返すようならば、
以下の手順を試してみる。

*Open Firmwareに入るために、コマンド+オプション+O+Fを押しながら再起動を
する。
*“setenv boot-image”と打ち込んでリターンを押し、起動する。(もし
OpenFirmwareパスワードを設定していると、入力を求めらる。)

Matt Johnston - matt @ ucc.asn.au

Updated 17 November 2005 (created 2 November 2005)
29名称未設定:2005/12/09(金) 11:17:28 ID:h1DsFsPt0
>>21
大変、乙でした。
iBook 1GHzで成功。
30名称未設定:2005/12/09(金) 21:04:43 ID:2GZ3rOpHP
新しもの好きから転載

◆ Deep Sleep 0.5 (E)

http://perso.wanadoo.fr/mbeaumel/deepsleep/

ワンクリックでMacをハイバーネーションモードにするDashboard用ウィジェット。(
要・OS X 10.4.3)[フリーウエア]
31改8
2人ほどから、壊れたハイバネートイメージに関する問題の報告もみかけた、何
度再起動しても、壊れたハイバネートイメージを読み込もうとするためにカーネル
パニックを繰り返すというものだ。これは、先に述べた「安全な仮想メモ
リ」をオンにしているにもかかわらず、適切なhibernatemodeを設定していない場
合に起こりうる。

もし、壊れたハイバネートイメージで再起動とクラッシュを繰り返すようならば、
以下の手順を試してみる。

*Open Firmwareに入るために、コマンド+オプション+O+Fを押しながら再起動を
する。
*“setenv boot-image”と打ち込んでリターンを押し、続けて"boot"と打ち込みリターンする。(もし
OpenFirmwareパスワードを設定していると、入力を求めらる。)

Matt Johnston - matt @ ucc.asn.au

Updated 17 November 2005 (created 2 November 2005)