ubuntuでWake On LANを設定する

Linux
この記事は約7分で読めます。

 

 

Ubuntu 20.04.1 LTSをインストールしたEQUIUM S7100にWake On LANを設定して遠隔起動できるようにします。

 

                 

WOL(Wake On LAN)設定

環境

  • Ubuntu Desktop 20.04.1 LTS

BIOS設定

 

WOLを行うためにはパソコン本体側のBIOSの設定が必要です。

EQUIUM S7100のBIOSを起動して、WOLを有効にします。

BIOSの起動はF2を押して起動します。

設定項目は、[Advanced]の中にある[Wake On Lan from S5]で、この値を Enabled に変更します。

S5は電源断を意味していると思います。

ubuntuの設定

ethtoolのインストール

 

WOLを行うためにethtoolをインストールします。

$ sudo apt install ethtool

このパッケージはNIC(Network Interface Card)に関する設定を行うことができるユーティリティーです。

現在のWOL設定を確認する

 

インストールしたethtoolを使用して、現在のWOL設定を確認します。

WOL設定を確認するためには sudo ethtool [ネットワークインタフェース名] を実行しますが、ネットワークインタフェース名を知っておく必要があるので、まずはネットワークインタフェース名を確認します。

$ ip add show

私の場合、enp4s0という名前であることが分かりました。 以下のコマンドでWOL設定を確認します。

※ enp4s0 はご自身のインターフェース名に置き換えてください。

$ sudo ethtool enp4s0 | grep -i wake
        Supports Wake-on: pumbg
        Wake-on: g

Wake-on: が d ならWOL無効。g ならWOL有効です。

今回は g なのでWOLは有効になっています。

WOLを有効にする

WOLを有効にするには以下のコマンドを実行します。

sudo ethtool -s enp4s0 wol g

これで、WOLが有効になります。

ただし、有効になるのは次回起動時のみで、次々回以降はWOLが無効になります。

そのため、ずっとWOLを有効にしたい場合は、ubuntuが起動するたびに”sudo ethtool -s enp4s0 wol g”が実行されるように設定しなくてはなりません。

起動時にWOLを有効にするスクリプト

シェルスクリプトの保存場所、名前は任意です。

$ sudo vi /home/wolg
#!/bin/bash

ethtool -s enp4s0 wol g

exit

作成したシェルスクリプトに実行権限を付与します。

# ll /home/wolg
-rw-r--r-- 1 root root 45 11月 27 14:08 /home/wolg
# ↑実行権限がない

# sudo chmod +x /home/wolg
# ll /home/wolg
-rwxr-xr-x 1 root root 45 11月 27 14:08 /home/wolg*
# ↑実行権限を付与した

サービスに登録するため、systemdのユニット定義ファイルを作成します。

$ sudo vi /etc/systemd/system/wolg.service
[Unit]
Description=Enable Wake-On-Lan
 
[Service]
Type=simple
ExecStart=/home/wolg
Restart=always
 
[Install]
WantedBy=multi-user.target

作成したファイルを登録し、起動します。

$ sudo systemctl daemon-reload
$ sudo systemctl enable wolg.service
$ sudo systemctl start wolg.service

これでubuntuのWOL設定は終わりです。

 

設定の確認

 

想定通りの挙動になっているか、端末を一度再起動してみましょう。

# ethtool enp4s0 | grep Wake-on
        Supports Wake-on: pumbg
        Wake-on: g

“Wake-on: g “となっていれば問題ないですね。

Wake On LANをやってみて問題がないか最終確認しましょう。

 

Wake-on: g とならないとき

 

もし、”Wake-on: d”となった場合、以下のコマンドで状況を確認してみましょう。

$ systemctl status wolg.service 
● wolg.service - Enable Wake-On-Lan
     Loaded: loaded (/etc/systemd/system/wolg.service; enabled; vendor preset: enabled)
     Active: failed (Result: start-limit-hit) since Wed 2021-04-09 10:05:48 JST; 43s ago
    Process: 883 ExecStart=/home/wolg (code=exited, status=0/SUCCESS)
   Main PID: 883 (code=exited, status=0/SUCCESS)

 4月 09 10:05:48 XXXX systemd[1]: wolg.service: Scheduled restart job, restart counter is at 5.
 4月 09 10:05:48 XXXX systemd[1]: Stopped Enable Wake-On-Lan.
 4月 09 10:05:48 XXXX systemd[1]: wolg.service: Start request repeated too quickly.
 4月 09 10:05:48 XXXX systemd[1]: wolg.service: Failed with result 'start-limit-hit'.
 4月 09 10:05:48 XXXX systemd[1]: Failed to start Enable Wake-On-Lan.

wolg.serviceがfailedになっています。

この場合の対応は以下の記事にまとめました。

マジックパケット送出の準備

WOLを実行するときはマジックパケットをLAN内の別の端末から送出する必要があります。

私の環境ではASUSルーター RT-AX56Uでは、マジックパケットを送出する機能があるので、ルーターにマジックパケットを送出する対象としてEQUIUM S7100を登録します。

ネットワークツール – Wake on LANから登録します。

 

以上で、すべての準備が完了しました。

起動方法

ASUSルーターからマジックパケットを送出します。

クライアント名(MACアドレス)から対象の端末をクリックし、『ウェイクアップ』をクリックするとマジックパケットが送出されます。

無事起動することができました。

# ethtool enp4s0 | grep Wake-on
        Supports Wake-on: pumbg
        Wake-on: g

起動後にubuntuのWOL設定を見てみると、想定した通りWake-on: gとなっています。 これで、OpenVPN+WOLで外出先からEQUIUM S7100を起動できるようになりました。

コメント

  1. 通りすがり より:

    とても参考になりました
    ありがとうございました

  2. […] ubuntuでWake On LANを設定する Ubuntu 20.04.1 LTSをインストールしたEQUIUM S7100にWake On […]

タイトルとURLをコピーしました