single.php

Ubuntu 22.04でWake On LANができない際の確認箇所

Ubuntu 22.04 LTSでサスペンド状態から、ネットワーク内の別デバイスから起動する(Wake On LAN)設定後、マジックパケットを送信しても起動できなくてハマったので備忘録的な投稿です。

マザーボードのUEFI(BIOS)は必須

この記事を読んでいる人には釈迦に説法的な話ですが、マザーボードの(BIOS/UEFI)にWake On LAN向けの設定を有効にする必要があります。そもそも対応していないマザーボードもあるので、仕様的に無理な場合にはUbuntuでもWindowsでも起動はしないので注意。

ASRock製のマザーボードの場合、UEFIに「オンボードLANでの起動」があるので、有効にすることでWake On LANを利用することができます。ボードメーカーやBIOS/UEFIによって、項目名などが違うので設定を確認する際には注意してください。

ASRock製のWOLに関するUEFIの項目変更についての詳細は別記事をご覧ください。

Ubuntu側での設定も必要

Windows10では、UEFIで設定するだけでWake on LANが利用できますが、Ubuntuではオペレーティングシステム側でも追加の設定が必要になる面倒くさい仕様になっています。

ネットワークカードの名前取得

UbuntuでWake On LANを設定する際に、有効なネットワークカードの名前が必要になります。

CUIの場合には、次のコマンドを使います

sudo ip link

次のようにネットワークカードの情報が表示されます。

lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopb
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether ab:cd:ef:12:34:56 brd ff:ff:ff:ff:ff:ff

太字の部分が目的に名前です。

GUIの場合には[ネットワーク接続|有線接続]画面の[デバイス]に表示されます。

現在のWOL設定を確認

ネットワークアダプターの名前を確認したらethtoolを使って設定を確認していきます。ethtoolがインストールされていない場合には、先にインストールしておきます。

sudo ethtool enp3s0 | grep -i wake

現在のWake on LAN設定が確認できます。

Supports Wake-on: pumbg
Wake-on: d

[Wake-on]が “d” の場合には無効になっているので次のように有効にします。

sudo ethtool -s enp3s0 wol g

次のように[Wake-on]が “g” になっていれば Wake on LAN が使えるようになります。

Supports Wake-on: pumbg
Wake-on: g

再起動すると元に戻る

ここからがハマったポイントで、この[Wake-on]項目は揮発性の設定で、再起動後に既定値に “d” (無効)に設定されます。(サスペンドは設定が維持される)

再起動後に ethtool で “g” に変更すれば良いんですが、おそらく忘るだろうし面倒くさい。

なのでサービス化して毎回、起動後にコマンドを実行するようにします。

1. [wakeonlan.sh]ファイルを作成して、次の内容を適当なディレクトリに保存します(例 etc/wol フォルダー)

#!/bin/sh
/sbin/ethtool -s enp3s0 wol g

2. 保存したファイルのアクセス権を変更します。

sudo chmod 777 /etc/wol/wakeonlan.sh

3. [wakeonlan.service]ファイルを作成して次の内容を適当なディレクトリ(例 etc/systemd/system フォルダー)に保存します。

[Unit]
Description=Enable Wake-On-LAN
 
[Service]
Type=simple
ExecStart=/etc/wol/wakeonlan.sh
Restart=always
 
[Install]
WantedBy=multi-user.target

4. 次のコマンドを実行してサービス化として起動するように設定します。

sudo systemctl enable wakeonlan.service
sudo systemctl start wakeonlan.service

Ubuntuを再起動してWOL設定を確認して

Supports Wake-on: pumbg
Wake-on: g

上のように有効化が維持されていれば、起動後にWake on LAN が使えるようになります。

まとめ

Ubuntuでは、Wake On LANを利用するためには、マザーボード側での設定後にオペレーティングシステムで、追加の設定が必要になります。

また、追加の設定後もGUIが用意されている訳ではなく、再起動で既定値(無効)に設定されてしまうため、サービス化を行い毎回起動時に有効化するなど、専門的な知識が必要です。

UbuntuでWake On LANを使ってパソコンが起動しない方の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です