|
SWSUSPをインストールしてみる |
|
今までハードウェアサスペンドでなんとかしてきたけど それでもやっぱり少しずつはバッテリーを消費したりして不安が残る やっぱりハイバネーションしかないでしょ (毎日充電するから要らないっていえば要らないんだけどね) 参考にしたサイトは、こことここです。ありがとうございました。 |
|
材料集め |
|
まずはACPIのパッチを当てる必要があるらしい ん?まてよ。acpiってゆったら kernel panic のもとじゃなかったけ? インストールしたときliloのオプションでacpi=offとやって起動するようになったんだよなぁ そうか、バクやったんですね パッチ面倒くさいのでこのさいついでだから2.4.22にしちゃいます ということで http://www.kernel.org から linux-2.4.22.tar.bz2 をダウンロードしてきます 次に http://sourceforge.net/projects/swsusp/ から swsusp-1.0-2.4.21.tar.gz をもってきます swsusp-1.0.2.4.21.tar.gz にも suspend.sh は含まれているんですが、ディストリビューション名とか Vine の記述がなかったりするので Vine用にカスタマイズされた suspend-vine.sh を http://jegog.phys.nagoya-u.ac.jp/~tkonishi/cn/T1/swsusp/ からダウンロードしてきます 以上で材料がそろいました。全部同一ディレクトリにおいておきます。 |
|
解凍したりパッチ当てたりする |
|
カーネルのそーすを解凍します $ bunzip2 -dc linux-2.4.22.tar.bz2 | tar xvf - 次にSWSUSPの解凍をします $ tar xvzf swsusp-1.0-2.4.21.tar.gz ディレクトリを移動します $ cd linux-2.4.22 下記の順番で各種パッチを当てます。 まず、SWSUSP用のACPIパッチです $ bunzip2 -dc ../swsusp-1.0-2.4.21/acpi-option.bz2 | patch -p1 次に、SWSUSPのパッチを当てる $ bunzip2 -dc ../swsusp-1.0-2.4.21/swsusp-1.0-2.4.21.bz2 | patch -p1 さらに、エラー修正のパッチを当てるみたいです $ patch -p1 < ../swsusp-1.0-2.4.21/fix-2.4.22-pre-rejects ついでに、ノートパソコンのバッテリーを長持ちさせるパッチを当てる $ bunzip2 -dc ../swsusp-1.0-2.4.21/laptop-option.bz2 | patch -p1 以上で準備完了です 次はいよいよコンパイルです |
|
ガイーンとコンパイルする |
|
さぁそのままコンパイルまでやってしまおう まず、カーネル設定ファイルをとってくる $ cp /usr/src/linux/configs/kernel-2.4.20-i686.config .config でこのコピったファイルを使用してmakeする $ make oldconfig そしたら新規追加項目の設定を聞いてくるので Software Suspend (CONFIG_SOFT_WARE_SUSPEND) [N/y/?] これを y Compress image (CONFIG_SOFTWARE_SUSPEND_COMPRESSION) [N/y/?] これも y で後はそのままリターン押し続けます 次は $ make xconfig (または make menuconfig) を実行して設定の変更を行う Processor type and feature -> Loacl APIC support on uniprocessors を Y Processor type and feature -> IO- APIC support on uniprocessors を Y USB Support -> USB Multimedia devices の項目を全て N Console drivers -> Frame-buffer support -> ATI Radeon display support を N Console drivers -> Frame-buffer support -> ATI Rage 128 display support を N にします やっとこさカーネルのコンパイルです $ make dep clean bzImage modules オイラはGrubユーザじゃないので コンパイルが完了したらrootになって # make install # make moduels_install とします /boot にそれらしいものが新しい日付でできてたら大丈夫です |
|
lilo.conf を修正する |
|
できあがったカーネルで起動するように /etc/lilo.conf を修正します image= のところにはできあがったカーネルを指定する label= のところはなんでもいいのだが、カーネル名そのままを入れた append= のところは acpi=on とした( kernel panic おこすなよー) そして最初はapmをoffにしておいた(自動で電源おちるように後からonにした) あとは肝心のスワップ領域を指定する resume=/dev/hda5 でこんな感じ↓になる image=/boot/vmlinuz-2.4.22
label=linux-2.4.22
append="acpi=on apm=on resume=/dev/hda5"
read-only
root=/dev/hda3
編集がおわったら保存して
/sbin/lilo を実行しておく
|
|
再起動後の作業 |
|
再起動して作成したカーネル(linux-2.4.22)で起動しておく ハイバネーションのコマンドを設定する # suspend-vine.sh --install とすると /usr/sbin/hibernate と /etc/suspend.conf が作成される suspend.conf をいじると各環境に応じたハイバネーションが行えます 例えば SWSUSP_INSERTMODS="" ここには resume 後に読み込むモジュールを設定します lsmod の内容をハイバネの前後でメモっておいて自動で読み込まれていないものはここに記述して自動化します まずは何も考えずに実行してみます |
|
実際やってみる |
|
# /usr/sbin/hibernate おおおーーーー! プログレスバー(テキスト)が動いてて100%になって電源OFF可能になった (後日カーネルオプションを apm=on として自動電源OFFするようになった) できた! 今度は電源を入れてみる はれ?カーネル選択可能だ そうか同じカーネルで起動しないといけないってのはこのことか 慎重にもう一度 linux-2.4.22 を選択して起動 途中の画面が文字化けしていたのでものすごく不安だったけど元に戻った! やった! |
|
動作確認 |
|
ネットワーク、通信OK キーボード、マウスともにOK PCカード、 Air-H" が使えたのでOK サウンド、XMMS で MP3ファイルが再生できたのでOK USB、USBメモリを挿してみる...がこれは反応なし lsmod をハイバネ前後で比較してみると uhci がなくなってる # insmod uhci と実行すると認識可能になった(自動じゃなくてもいいから、これでもいいや) ひととおりなんとかなってそうな気配です 超満足 |
|
問題点 |
|
ハードウェアサスペンドを実行して復帰させます その状態から /usr/sbin/hibernate を実行すると何やら失敗こきます うーーん、併用は無理か.... (まぁいいか、これはBIOSで殺しておこう) ちなみにハイバネに失敗したときは次回正常起動時に # /sbin/mkswap /dev/hda5 と実行してSWAP領域をキレイにしたほうがいいらしい ハイバネってこんなに時間かかったけ? ハードウェアサスペンドに慣れきっていたからすごく遅く感じる (まぁいいか、そんなに時間が惜しいわけでもないし) |
|
これはいいかも |
|
今回 Vine の SWAP領域は /dev/hda5 にしたわけですが XPは別のパーティションがハイバネ用領域のはず ってことは XP は 休止状態 Vine は ハイバネ状態にできるのでは? でけました! 両OSともに問題なしです |