見出し画像

WOL(Wake On Lan)でManjaroPCを起動できなかった話🪟➡️🟩


1.はじめに😞

前回の問題(リモートデスクトップ接続の件)を保留とし、Windows11PCからManjaro(Linux)PCをWOL(Wake On Lan)でリモート起動させるようと試みましたが、タイトルにもある通りできませんでした。
再挑戦を見越して、自身の行ったことを備忘録として残します。
私の失敗談が、誰かの成功の糧となれば幸いです。

2.考え方🤔

Windiws11からWOL用のソフトを使ってManjaroPCをリモート起動させる流れになります。
私の考えた手順は以下の通りとなります。

  • Windows11PCにWOL用のソフトをインストール

  • ManjaroPCのBIOS設定でWOLによる起動が可能となる設定をする

  • ManjaroPCでWOLによる起動が可能となるソフトをインストールする

3.手順📚

私が実際に行った手順を載せていきます。

3-1.Windows11PCにWOL用のソフトをインストール

Windows11にはリモートで他PCを起動する機能はありません。
WOLはマジックパケットと呼ばれるネットワークパケットを起動したいPCに送信することで、リモートによる起動を実現しています。
起動したいPC側でマジックパケットを受信したら起動する設定をすれば、ネットワークとしてつながっている範囲で起動できます。
WOLを行えるソフトとして「nWOL」というツールがマジックパケット送信を行います。

ホームページから現時点(2025/01/26)で「nWOL Version 1.7.81 (64bit) インストーラパッケージ」を選択するとダウンロードページ画面に移動するので、「Downlowd Now!」を右クリックし、名前を付けてリンク先を保存を選択します。
ダウンロードした「nWOLSetup_x64.1.7.81.0.msi」をダブルクリックし、セットアップを行います。表示される画面で「Next」「Next」「Install」「Finish」の順に選択して進めます。

セットアップ画面
インストール先の選択
インストール確認画面
インストール中の画面(終わるまで待つ)
インストール完了

画面左下のWindowsマークをクリックして「🔍アプリ、設定、ドキュメントの検索」に「nwol」と入力すると「nWOL」が選択可能になってます。

インストール確認

インストール直後か、上記アプリを開くと以下のような画面が表示されます。

nWOL初回起動時

ここで基本の設定を行うため、手動でManjaroPCを起動しておきます。
ManjaroPCのコンソールかWindows11PCの「Tera Term」でホスト名を確認する以下コマンドを実行します。

hostname
TeraTermでhostname実行時

ここでは画面に表示された「MnjrPC」がホスト名になります。
ホスト名をnWOLのホスト名に入力し、「MAC/IP取得」をクリックします。

ホスト名を入力
MAC/IP取得をクリック

ネットワーク上でホスト名のPCが接続されているならば、「MAC/IP取得」をクリック後、MACアドレス、IPアドレス、ネットマスクが自動で表示されます。
WOL Modeの下にある追加をクリックすると左下の白枠に接続PCの情報が追加されます。
※「Scan」をクリックするとネットワーク上の機器が表示されます。

追加をクリック

右下の「OK」で設定が有効となります。また、設定画面と別にステータス画面も表示されます。

ステータス画面(PC接続)
ステータス画面(PC切断 ※電源ボタンクリック可)

3-2.ManjaroPCのBIOS設定でWOLによる起動が可能となる設定をする

マザーボードによってはWOLを行えなかったり、できないよう初期設定されています。
ManjaroPCを再起動してBIOS画面を表示します。(マザーボードにより、PC起動時に押すキーボードのボタンが異なります)
※ManjaroPCのマザーボード:Foxconn H61MXT1

BIOS(UEFI)でPowerを選択
Resume By Onboard LANはDisabledが選択されている
Resume By Onboard LANをEnabledに変更
Resume By Onboard LANがEnabledになったことを確認
Advancedを選択
Network stackはDisabledが選択されている
Network stackをEnabledに変更
Network stackがEnabledになったことを確認
変更を有効にしてBIOS(UEFI)を閉じる

3-3.ManjaroPCでWOLによる起動が可能となるソフトをインストールする

ManjaroPC側もWOLを有効にするための手順が必要です。
下記リンク先の設定内容を参考にしました。

ManjaroにはTLP(電源管理)が入っているものの、WOLが無効にされているので有効にします。
参考ではシェルスクリプトで一気にやっておりますが、tlp設定変更の設定箇所異なるようで最後まで動きません。学習を目的として一つずつ実行することとしました。
まずは一時的な環境変数を設定します。

SYSTEMD_PATH="/etc/systemd/system/" 
SERVICE_NAME="wol.service" 
FILE_PATH=${SYSTEMD_PATH}${SERVICE_NAME}
sudo nano /etc/tlp.conf

/etc/tlp.conf で「WOL_DISABLE=N」を設定します。
Ctrl+Oで書込みを行い、Ctrl+Xで編集を終了します。

/etc/tlp.confで WOL_DISABLE=Nを設定

ネットワークの状態を確認するethtoolをインストールします。
ネットワークのインターフェイス名を調べて一時的な環境変数「NIC_LIST」に格納し、内容を確認します。

sudo pacman -S --noconfirm ethtool
NIC_LIST=($(for DEV in `find /sys/devices -name net | grep -v virtual`; do ls $DEV/; done))
echo ${NIC_LIST}

NIC_LISTのインターフェイスが一つの場合は以下を実行し、

INTERFACE=${NIC_LIST}

複数ある場合は以下を実行します。

INTERFACE=${NIC_LIST[0]}

次に以下をコンソールにそのままコピーして貼り付けて実行します。

if [ -e ${FILE_PATH} ]; then 
    echo "ファイルを上書きしますか? [Y/n]" 
    read -p "answer[y or n]:" ANSWER 
    ANSWER=`echo $ANSWER | tr y Y | tr -d '[\[\]]'` 
    if [ ${ANSWER} != "Y" ]; then 
        exit 0 
    fi 
    # 設定がある場合は、サービスを止めておく
    sudo systemctl stop ${FILE_NAME} 
    sudo systemctl disable ${FILE_NAME} 
fi

次に/dev/nullにteeコマンドを用いて一行ずつ書き込みました。
(入力時イメージを参照ください)

sudo tee ${FILE_PATH} <<EOF >/dev/null
[Unit]
Description=Configure Wake-up on LAN
Requires=network.target
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/bin/ethtool -s ${INTERFACE} wol g
[Install]
WantedBy=basic.target
EOF
teeコマンドを用いて一行ずつ書き込み~最終確認まで

/dev/null に書き込んだ内容が反映されているか確認します。

sudo nano /dev/null

最後に「設定のリロード」「サービスのスタート」「自動起動の設定」「最終確認」を行います。

sudo systemctl daemon-reload
sudo systemctl start ${SERVICE_NAME} 
sudo systemctl enable ${SERVICE_NAME} 
echo "WOL有効化の確認:Wake-on: g で有効"
sudo ethtool ${INTERFACE} | grep Wake-on

最終確認で「Wake-on: g」と表示されればWOLが有効になっているとのことです。

3.最後に🔚

結局はWindows11PCでONにしてもManjaroPCは何も反応しません。
問題の切り分け究明は別の機会に行おうと思います。
失敗話にお付き合いいただき、ありがとうございました。
それでは、またの機会に。

いいなと思ったら応援しよう!