Linuxホームサーバー編
No.9 Wake on LANが使えたぞ!
(ACPIとAPMの関係は?)

2005,1/30 完成


VineをアップグレードすればWOLが使えるようになるだろう、という淡い期待ももろく崩れ
初心に返ってLANカードの設定から確認しなおすことにしました。 (T_T)


1)LANカードのデバイスドライバを確認してみよう
まずはLANカードのデバイスドライバに最新版がインストールされているか確認です。
幸い今回使っているCorega PCI-TXSはLinuxに対応しているとのこと。
最新版のデバイスドライバをCoregaのサイトからダウンロードして入れ替えればWOLも
使えるようになるのではないか?という期待を抱きCoregaのサポートページを見てみると、、、
 「Linux(サポート対象外 ドライバー非添付)」などと書いてあります。(がーん!)
えぇ〜話が違うじゃん、と調べてみると単に「Linuxで動いた、」という事だけで動作保証を
してくれるわけではないそうです。 (T_T)
さらにPC UNIX 対応情報というページで調べてみるとrtl8139 またはrtl8139tooという
ドライバを使って、Vine Linux 2.1.5では動いた実績がある、と書いてあります。
(ちなみに使っているコントローラーがRealTek RTL8139だそうな。)

ドライバとしてrtl8139が使われているか何を見たらわかるんだ???
と悩みましたが、色々調べた結果GNOME端末を開いてlsmodというコマンドを打ち込むと
カーネルに含まれているモジュールの一覧が表示される事がわかりました。
早速試してみると、



おぉ、ちゃんと8139tooというモジュール(この場合デバイスドライバ)が組み込まれているようです。
本当に最新版か?という点は確認できなかったもののLANカードのデバイスドライバには
大きな問題ないようです。(うれしいやら悲しいやら複雑な心境・・・)


2)APMとACPIって何が違う?
LANカードは問題なさそうなので次に「OSとしてパワーマジメンとがちゃんとできているか?」、という
あまり触れたくなかった大元の謎を解明しなければならなくなりました。 (T_T)

まず、APMとACPIの関係を調べてわかったのは、
(e-wordのAPMACPIバイオヒント集の「APM」と「ACPI」ってなんだろう?が参考になりました。)

・最初にAPMができてその後(1996年)にACPIができた。
・どちらもBIOSとOSが対応していないと使えない。
・ACPIは周辺機器と連携してより細かな電源管理ができる。
 (ただし周辺機器がACPI対応でないとダメ)

という事みたいです。
つまりACPIの方が新しくて高機能!って事ですね。
幸い今回のサーバーであるPC Station S273LCDACPIにも対応しているのでACPIでWOLをやるって
もんでしょう。(と、安易に考えたのが間違いの元でした。。。)


3)ACPIって動いている?
と、ACPIでWOLをやってみることにしたものの、BIOSはACPIの設定画面があるのでいいのですが
Vine上でACPIが動いているかがわかりません。
またもやネットをさ迷って、

”/etc/acpi/events/”というフォルダーにpower(拡張子なし)という

# /etc/acpi/events/power
event=button.power.*
action=/sbin/poweroff

こんなようなテキストファイルを作って置いておくと電源ボタンを押すと勝手にlogoffしてから電源を
シャットダウン
してくれる、という事がわかりました。
(このときはどういうサービスが動いているか確認する方法がわからなかったのです。。。)
今まで電源ボタンを押すとブチン!といきなり電源が切れていたのでHDDが壊れないか心配だったのですが、
これならHDDにもやさしいしACPIが動いている事も確認できてよいではないですか! (^_^)
さっそくこんな感じでpowerというファイルを作ってみたところ、



電源ボタンを押すときちんとlogoffしてから電源が切れるようになりました。
ということはちゃんとACPIが動作しているって事です。
「なーるほど、Linuxってこういう感じでパソコンを制御していくのかぁ。呪文みたいで面白いなぁ。
と関心はしたものの、電源を落とした状態で外のパソコンからWOLで起動しようとしてもうんともすんともいいません
いくらACPIが動いてもWOLが使えないんじゃ意味がないではないですか。 (T_T)


4)ACPIがダメならAPMがあるさ
そういえばPC Station S273LCDにWindowsをインストールしていたときは、サスペンド状態(*1)の時だけ
WOLが使えていたことを思い出しました。
「サスベンド状態にできればVineでもWOLが使えるかも知れない・・・」
そう考え、またもやネットをさ迷い歩いた結果、
  /etc/lilo.conf
というファイルのappendという行に、”acpi=off apm=on”を加える事によりAPMがONになって
電源ボタンを押すとパソコンをサスペンド状態にする事ができるということがわかりました。
ここまでわかればこちらのものです。 (^_^)

※ でもACPIを使ってサスペンドを使う方法が見つからないのはなぜ?
  サスペンドはAPMの専売特許??

< もともとのlilo.conf >


< appendの行にacpi=offとapm=onを加えたところ>


これでVineのAPMがONになる”はず”なのでBIOSの設定も、
 ・ACPI=ON
 ・電源ボタンを押したときの挙動を”サスペンド”
にしてVineを再起動。
Vineが立ち上がった状態で電源ボタンを押すと・・・・みごとにサスペンド状態になりました。 (^_^)
(電源ボタンがオレンジ色に光った状態でパソコンが落ちるのでサスペンド状態だとわかる。)
ここまで来ればWOLも動いた状態に違いない!とVineマシンをサスペンド状態にして他のWindowsマシンから
Follow me(ちなみに設定画面はこんな感じ)を使ってWOLをやってみますが・・・
・・・うんともすんとも言いません。 (T_T)
 なぜだーー!!なんでWindowsの時は動いてVineでは動かないんだーー!!
と、怒って何度繰り返してもダメなものはダメです。
あきらめてVineマシンの電源を完全に落としてその晩は寝てしまいました。

翌朝、いつもの様にWindowsマシンを立ち上げると、
 「子機を起動してもいいですか」
というメッセージが出てきました。
そうか、昨日のFollow meが残ってるんだ、と何も考えずに”OK”のボタンをクリックすると
 ・・・ジーー、ウィンウィン
と低い音を立てて横に置いてあるVineマシンが立ち上がるじゃぁないですか!
なんとサスペンド状態ではダメだったくせに電源を完全にOFFした状態からならWOLが使える
ようになったのでした。
 やったーー、棚からぼた餅でWOLが使えるようになったぞ〜〜

*1 サスペンドの意味
 パソコンの状態を保持したまま電源を落とす機能にも色々あるので一旦整理してみました。
 a)電源ON        :パソコンが100%動いて普通に使っている状態。
 b)サスペンド       :メモリの内容を保持したまま休止した状態。
                数秒で復帰するが、メモリの内容を保持しなければならないため待ち受け時に少し電気を食う。
 c)ハイバーネーション :メモリの内容をHDDに退避させて電源OFFにした状態。
                待ち受け時に電力は食わないが復帰時はHDDの内容をメモリに戻すための時間がかかる。
 d)電源OFF       :完全にパソコンをOFFにした状態。
 a > b > c > d の順で電気を食い、同じ順番で復帰までの時間が速い、ということになります。
 また、ハイバーネーションと同じ意味もしくはハイバーネーションとサスペンドと同じ意味でレジュームという
 言葉が使われたりします。(わかりにくいですね、ほんとに。 (^_^;) )


5)ACPIとAPMとBIOSとWOLの関係は?
そんだこんだでWOLが使えることになったのはうれしいのですがVine上のACPIとAPMの設定と
BIOS上でのACPIの設定とWOLの関係がわけがわからなくなってしまいました。
どうにもこうにも気持ち悪いので設定を変えながら簡単な実験をしてみました。

実験
No.
BIOS
の設定
VINE設定
(lilo.conf)
VINE
サービス *2
電源ボタン
の挙動
WOLが
使えるか?
ACPI ACPI APM ACPI APM
1 ON OFF ON × 電源OFF ×
2 OFF OFF ON × サスペンド
3 ON ON OFF × 電源OFF ×
4 OFF ON OFF × サスペンド
5 OFF ON ON × サスペンド
6 ON ON ON × 電源OFF ×


※ BIOSでの電源ボタンの設定は”サスペンド”で固定。
*2 ACPIのサービス ○ のときの状態→こんな感じでacpidが動いています。
   APMのサービスが○のときの状態→こんな感じでapmdが動いています。

わかったことは、
 ・APMのサービス(apmd)が立ち上がっていないとWOLは使えない。
  そのときには電源ボタンを押すとサスペンドになる。(実験 2,4,5)
 ・VineのACPI設定よりもBIOSのACPI設定の方が優先される。(実験 1,5)
 ・ACPIとAPMではACPIが優先される。(実験 6)

の3つです。
なーるほど、BIOSの設定でACPIをOFFにしておいてVINEでAPMをONにして
初めてWOLが使えるようになるということがわかりました。
もやもやしていたものがなくなってスッキリしました。 (^_^)
きっと今回使っているLANカード、Corega PCI-TXSがACPIに対応していなかった
ということなんでしょうね。
ちなみにサービスではACPIとAPMののどちらか一方しか動作していませんが
サービスの登録は両方登録されていたりします。


と、紆余曲折ありましたが何とかWOLが使えるようになりました。
しかーし、パソコンを立ち上げる事ができてもこのままでは遠隔操作でシャットダウン
する事ができません。
次のテーマはシャットダウンの方法です。もう一息!


←戻る 進む→
ホームに戻る