数か月の願いがやっと叶った。

私は自宅で過去に普段使いのPCとして使っていたPCにCentOS7を入れ、各種バックアップなど用に稼働させているのだが、ファンの音がやけにうるさく、また電気代との兼ね合いもあるので、長時間稼働できないという状態である。
そういう環境下で、遠いところ(電源ボタンに手が届かないところ)から電源を投入するのにWOL(Wake On LAN)をしたかったのだが、うまくいかず半分諦めていた。しかし、今回うまくいきWOLが使えるようになったので備忘録として記事にする。

注意事項

この記事で解説されている内容は、かなり高度な内容です。BIOSの設定を含み、このような設定をいじることは最悪起動すらできなくなる恐れがあります。この記事に記載されている内容を実行し、発生したいかなる問題について当サイト管理者は一切責任を負いません。自己責任でお願いします。

目次

環境

  • Shuttle XPC Glamor S113G
  • CentOS 7.4.1708 64bit
  • ethtool 4.8
  • NIC driver: sky2
  • NIC driver version: 1.30

やり方

① BIOSからマジックパケットで電源投入できるように設定を変える

  1. 起動時、Shuttleのロゴ表示画面のところでDELETEキーを押し、BIOSに入る
  2. Phoenix - AwardBIOS CMOS Setup Utility」が出たら「Power Management Setup」を上下キーで選びEnter
  3. 以下を確認、必要に応じて変更
    ACPI Suspend Type: S1&S3
    Run VGABIOS if S3 Resume: Auto
    Soft-Off by PWR-BTTN: Instant-Off
    Wake-Up by PCI card: Enabled
    Resume by Alarm: Disabled
  4. ESCで戻り、Save & Exit SetupでBIOSを抜ける。

② ethtoolを使用して、wolの許可設定をする

  1. CentOS起動後、ifconfigを実行し、NIC名を確認する。
    [#1 [email protected] 18:33:26 ~]# ifconfig -a
    enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

    この場合だと、NIC名はenp2s0
  2. 必要に応じ、yumからethtoolをインストール
    [#2 [email protected] 18:38:46 ~]# yum install ethtool
  3. ethtool <NIC名> | grep Wake-onでNICの設定からWOLの設定だけを表示
    [#3 [email protected] 18:42:58 ~]# ethtool enp2s0 | grep Wake-on
    Supports Wake-on: pg
    Wake-on: g
  4. Wake-on設定がgでなければ、ethtool -s <NIC名> wol gを実行し、WOLの設定を変更する
  5. 必要に応じ、ifconfigを実行しMACアドレスや割り振られているIPアドレスを確認しておく。

③ NICドライバが「sky2」でとくにバージョンが1.30の場合、sky2モジュールをアンロードする

  1. ethtool -i <NIC名>でドライバとバージョンを確認
    [#4 [email protected] 18:52:43 ~]# ethtool -i enp2s0
    driver: sky2
    version: 1.30
  2. /etc/modprobe.d/sky2.confファイルを作り、options sky2 legacy_pme=1を書き込み
  3. modprobe sky2 -rを実行 (モジュールアンロード) SSHなどで接続している場合、ここで接続が途切れてしまうので現地(サーバ)で行ってください。
  4. modprobe sky2を実行 (モジュールロード)
  5. 再起動

その他

一部、NICのドライバの不具合でWOLできないというケースもあるようなので、その場合は他の方の記事(参考元の3)をどうぞ。
成功前、BIOSの設定データがやけに吹っ飛ぶなあといろいろやってたら、マザーボードのボタン電池が切れてました。替えましたが。

繰り返しになりますが、この記事で解説されている内容は、かなり高度な内容です。BIOSの設定を含み、このような設定をいじることは最悪起動すらできなくなる恐れがあります。この記事に記載されている内容を実行し、発生したいかなる問題について当サイト管理者は一切責任を負いません。自己責任でお願いします。

参考元

  1. kernel - How do I get WakeOnLAN working when my network controller uses the sky2 module? - Ask Ubuntu
  2. Bug #1798921 “sky2 ethernet card don't work after returning from...” : Bugs : linux package : Ubuntu
  3. Wake on LANを設定してみる: 元SE?苦悩の??部隊数