4.サスペンド及びハイバネーションを使えるようにする

準備と方針

設定

  • /etc/default/grubファイルの項目「GRUB_CMDLINE_LINUX_DEFAULT=""」の「""(引用符内)」に「apm=off acpi=force」(単語間は半角空白で区切る)を追加記入する(ファイル保存後、「sudo update-grub」で必ず更新する)。

  【例】GRUB_CMDLINE_LINUX_DEFAULT="quiet splash apm=off acpi=force"(デフォルト状態に追加記入した場合)

  • /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pklaファイルを作成し、次の内容を記入する。

   [Re-enable hibernate by default in upower]

          Identity=unix-user:*

          Action=org.freedesktop.upower.hibernate

          ResultActive=yes

 

          [Re-enable hibernate by default in logind]

          Identity=unix-user:*

          Action=org.freedesktop.login1.hibernate

          ResultActive=yes

          (上記内、赤・緑・青の各部が違う。他は同じである。紫の部分は「コロンとアスタリスク」である。)

使用上のコツ及び注意

 使用上のコツや注意として次のことがあげられる。

  •  サスペンドハイバネーションへ入るときは、wi-fiを無効にする必要がある(RFボタンを押す)。
  • 外部モニター接続時は、ハイバネートしない(モニター設定から外部モニターをoffにする。あるいは、最初から外部モニターを外した状態でログインする)。
  •  サスペンドは、動作に多少不安定な部分がある。ログアウトメニュー一覧からサスペンドを選択するより、「電源管理」の「蓋を閉めたときにサスペンドする」設定の方が(つまり、蓋を閉めてサスペンドする方が)、より安定的に動作するようだ(それも絶対ではない)。電源ランプが点灯しっぱなしの時は、画面は消灯するがCPUは、ほぼ通常の待機状態のようだ(これは本体の発熱具合と電池の消耗具合を手で触ったり目で見たりした範囲内での小生の感想であり、多分に感覚的なものである点に注意されたい。計測等をして確かめたわけではない。画面が消えている、データは保持される、CPUに通電している、ことには変わりないのでこの状態でサスペンドだという方もおられるかもしれないが)。 

裏話的解説

 まず設定だが、grubファイルと電源管理アプリケーションxfce4-power-manager(「電源管理」)の設定に大きく二つに分かれる。

 grubファイルについては3のポインティングデバイスのところでも触れているが、これと同じ項目のところに新たに2文を追加記入する。順番は上記の順番が好ましい。いずれもカーネルに電源制御の方法を伝えている。すなわち、「電源制御方法として、APMは使わず、ACPIを使用する。」という意味である。「acpi=force」の「force」は、強制的に使うという意味を持ち、たとえ「apm=on」と設定したとしても、「acpi」の方を優先的に使用する。「APM」も「ACPI」いずれも、コンピュータの電源制御方式のことであるが、「APM」がBIOSを介するのに対し、「ACPI」はOSが直接コントロールするというところに大きな差異がある。ここらに関して詳しく知りたい場合は、こちらあたりを参考にされたい。

 grubファイルを上書き更新した後は、上述の通り、お約束として「sudo update-grub」で必ず更新する。

 「com.ubuntu.enable-hibernate.pkla」ファイルの方はlubuntuにデフォルトで入っている電源管理アプリケーション「xfce4-power-manager」の設定ファイルである。このアプリは、lubuntuでは<設定>の所にある、その名もずばり「電源管理」と表示されているあれである。このアプリを開くと、コンピュータの電源をどのように制御するのか割と細かく指定することができることがわかる。しかし、状態遷移のパターンにサスペンドやシャットダウンはあるのだが、ハイバネートはない。つまりデフォルト状態ではハイバネートは実行できないのである。が、マウスカーソルをその選択枠(たとえば、<システム>タブ、<システムのスリープモード:>のコンボボックス)上で止めると、「ハイバネート操作が許可されていません」などと、意味深な表示がわざわざ出てくる。と言うことは、「許可されれば使えるのか?」などと思ってしまうが、それを許可するのが上記の設定である。「com.ubuntu.enable-hibernate.pkla」ファイルはデフォルトでは入っていないので、これもまたスーパーユーザ権限の適当なエディタで上記の通り記述し、上記場所に上記ファイル名で保存する。ちなみに「[Re-enable」から始まり「ResultActive=yes」で終わるよく似たパターンが2つある。上の方が「電源管理」のハイバネート許可で、下の方はログアウトメニューに「ハイバネート」ボタンを追加表示させる設定である。記述したファイルを保存した時点で、ログアウトメニューに「ハイバネート」ボタンが表示される。「電源管理」の方は再起動後に「ハイバネート」が選択できるようになるので、いずれにせよいったん再起動する。

 書き忘れるところであったが、電源管理の設定内容をしっかり動作させるには、「Light Locker」をオフにする必要があるらしい(厳密に小生が自分で確認しているわけではない。多くの方がそのように指摘されておられるので、小生もそれにならっている)。lubuntuには<設定>の上から3つ目に表示されている「Light Lockerの設定」をクリックして起動する。<ロック>の所に「Light Lockerを有効にする」とあるので、その脇のスライドを左にスライドして「オフ」が見えるようにする。最後に、下の「適用」ボタンを必ずクリックする(たいていのLinuxのプロパティ設定は選択=設定で、このような「適用」ボタンは無いのが普通だが、この辺のばらつきがLinuxだと言うべきか)。

 以上で設定に関する解説は終わりである。解説も比較的長かったが、今回の復活設定作業で、完了までもっとも時間を要したのが以上の設定であった。

 小生がこの手のモバイルPCを使用するとき、入力作業をやめねばならないぎりぎりまで作業し、あわてて席を立つと言うパターンが少なからずある。そのため、サスペンドは必須である。しかし、いつもサスペンドだとやっぱり電池の残量が気にきなる。そうなるとハイバネート機能も欲しくなる。そう思って先の「電源管理」を開くと、あの有様である。もうはっきり言って「Linuxのばかやろー」状態であった。「欲しい機能があるようではあるが、すんなり実現しない」。この「もやもや感」がLinuxには、いつも付きまとう。「プリンタの接続」や「音を出す」などとWindowsなら「はいよっ」と言ってできることも、Linuxだとあの雑誌この解説本を散々読み散らかし、その解説の通りに設定してもうまく動かない。最後の頼みの綱とばかりに添付ドキュメントを開けば全部英文だった、などというあれである。昔のもやもや感が、再びよみがえった。

 「なぜハイバネーションがデフォルトで使えないのか?」それはLinuxのような汎用OSの宿命のようなものであった。Windowsでは使用できるハード要件(スペック)が限定されている。CPUしかりメモリしかり。おまけにOSメーカー自体が、その要件をハードウェアメーカーに要求できる環境にある。それに対してLinuxの場合は、フリーな環境にあり、誰がどのようにも使うことができる(一定の基準はあるが)。そのため、世に出回る様々なハードウェアを使う前提でOSを設計することとなる(同一バージョンでも使うプロセッサの違いで多くのバージョンがあるのが好例)。そしてそのような環境下でサスペンドハイバネーション機能を実装したとき何が起こったか?。特にハイバネーションに関しては、「ハイバネートしない」とか「ハイバネートしたけど復帰しない」とか「復帰したけど画面が乱れる」とか、ともかく多くの「ちゃんと動かない」状態が噴出したのだそうである。そこで「もう、めんどうくせえから(と言ったかどうかは定かではないが)ハイバネーションはデフォルトでは使えないようにしとこう」と言うことになったのだそうだ。そのため、我らの「電源管理」の設定を上記の通りに設定したところで、使用するコンピュータが「ちゃんとハイバネートする」かどうかは、「神のみぞ知る」である。しかしBX407A4は大丈夫。ここまでのとおり設定すれば、「ちゃんとハイバネート」する(でも保証はしない。自分のは動いたと言う程度である)。

 さて、上述した「もっとも時間を要した設定」とは、「ちゃんとハイバネートする」設定に至るまでの過程のことである。一ヶ月くらいかかったのではなかろうか。その間インストールのし直しは十回近くしたと思う。ハイバネート自体は上記設定をしさえすれば機械のことだから動き始めるのだが、これがちゃんとした動作にならない。ドライバーやら設定内容を探しだすまでに結構時間がかかっていたので、これはきつかった。こっちはもう終わったも同然ぐらいに考えていたのが、いきなり振り出しに戻されたような感覚だった。ちゃんと動かない理由が皆目わからず、あちこち探し回っては色々設定等を試し、いじり過ぎで中身がぐちゃぐちゃになるのでインストールし直しを繰り返した。その過程でぴんときたのがスワップ領域の容量確保だった。最初容量のことなど考えずインストールした時はメモリ同量の512MBだった。このときはハイバネート動作に入ったが、喜びもつかの間1秒足らずで元に戻ってしまった。ログを確認すると0.2~3秒程度で復帰していた。次は2倍量に別の理由でたまたましたのだが、この時はハイバネート動作に入り、電源が切れ、スイッチを入れると再起動し、動作に入ったときのテスト用書きかけ文書が回復した。「やった」と思い気をよくしてもう一回やってみると、これがだめ。ハイバネートしなくなった。BX407A4を再起動し直して試してみると、一回はハイバネートするが二回目以降はだめだった。一回こっきりのハイバネーションでは実用にはならない。この後何回かインストールを行った頃に容量に着目し、調べてみると別のディストリビューションの解説書に、「ハイバネーション動作にはメモリ容量の三倍程度のスワップ領域容量が必要」などと書いてあるではないか。もしやと思い、容量をメモリ容量の三倍である1536MBとってみるとこれがビンゴ、二回目以降のハイバネーション動作も無事行われるようになった。同様にサスペンドも試してみると、電源が切れた(メモリ周りの電源は残っているのだが)と同時に、電源ランプが点滅し始めサスペンドに入ったことを知らせる。再度電源ボタンを押す(他のキー等でも良いが)と、電源ランプが点灯し、同時に画面に先の文書が表示されて復帰する。めでたしめでたし。

 この時点でようやく目標であるハイバネーションサスペンドが実用に耐えうる状態になった。「容量をもっととったらどうなるか」あたりは試していない。そのうち試してみたいとは思うが。現時点ではとにかく、ハイバネートさせたいならスワップ領域容量をメモリ容量の三倍以上取る」ことを強くお奨めする。

 

 

 

 

0.Onkyo BX407A4にLinuxを入れて復活させる【はじめに】
1.Lubuntuをインストールする
2.タッチパネルを使えるようにする
3.光学式ポインティングデバイス及びマウスボタンを使えるようにする
4.サスペンド及びハイバネーションを使えるようにする
5.その他