1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【WoL】ラズパイ経由で家の外からデスクトップPCを起動する

Posted at

はじめに

  • 家の外でもデスクトップPCの環境で開発したい。
  • sshでログインできればいい
  • でも、デスクトップPCをずっと起動しておくと電気代がもったいないから、その都度起動できるようにしたい

上記の要望・問題点を解決したいと思って、この記事で紹介する環境を構築しました。

やること

  1. ラズパイにWakeOnLanをインストールする
  2. デスクトップPCをWakeOnLanで起動できるように設定する
  3. iPhone(or ノートPC)でラズパイにログインしてWakeOnLanを実行する
  4. 起動したデスクトップPCにログインする

前提知識

  • ssh
  • 基本的なLinuxコマンド

上記二つの超基本的な知識があれば、誰でもできる内容です。

取り扱わない内容

  • Lnuxのインストール方法
  • WakeOnLanの詳しい仕組み
  • ssh, vpnの説明
  • ラズパイのこと
  • Windows, MacOSでの方法

構成

all_image_wol.drawio.png

スイッチングハブ以外の機器がVPNに接続されています。

各種バージョン

ラズパイ

本体: Raspberry Pi 3 Model B+
OS: 下記

$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

デスクトップPC

OS: openSUSE

❯ cat /etc/os-release
NAME="openSUSE Leap"
VERSION="15.6"
ID="opensuse-leap"
ID_LIKE="suse opensuse"
VERSION_ID="15.6"
PRETTY_NAME="openSUSE Leap 15.6"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:leap:15.6"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://www.opensuse.org/"
DOCUMENTATION_URL="https://en.opensuse.org/Portal:Leap"
LOGO="distributor-logo-Leap"

WakeOnLanの簡単な説明

起動させる側と起動する側のPCを用意します。

それぞれ同じLANの有線に接続している状態です。

起動させる側は起動する側のMacアドレスを指定し、LAN経由で起動させるための信号(マジックパケット)を送信します。

起動する側のPCはマジックパケットを受信したら起動します。

この仕組みを使ってラズパイ経由でデスクトップPCを起動させていきます。 

ラズパイにWakeOnLanをインストールする

sshでも直接でもラズパイにログインします。
Raspberry Pi OSはDebian系(というかDebianそのもの?)なのでパッケージマネージャはaptです。
よって、下記コマンドでwakeonlanをインストールします。

sudo apt install wakeonlan

wakeonlan実行時は以下のようにコマンドの後にデスクトップPCのMacアドレスをつけるとマジックパケットを送信できます。

wakeonlan <Macアドレス>

とりあえず、ラズパイ側の準備はこれだけです。

WakeOnLanの仕組みについては、下記サイトにて説明されています。

デスクトップPCをWakeOnLanで起動できるようにする

ハードウェア側の設定はBIOS/UEFIによって異なるので自分のPCに合わせて設定してください。

WakeOnLanに対応していない機器もあるかもです。

ハードウェアだけでなく、OS側でも設定が必要です。

sshでも直接でも、まずデスクトップPCにログインします。

そして、ethtoolというネットワークインターフェースの確認・設定ができるツールをインストールします。

今回使用しているOSはopenSUSEなので、zypperコマンドを使用します。

sudo zypper install ethtool

下記コマンドで現在のネットワークインターフェースの状況を確認します。

$ sudo ethtool eth0

Settings for eth0:
~~~省略~~~
    Supports Wake-on: pumbg
    Wake-on: d
~~~省略~~~

このWake-onの部分がdであるとWakeOnLanが使えないので下記コマンドでgに変更します。

sudo ethtool -s eth0 wol g

ただ、上記のみであると再起動時に設定が戻ってしまうのでcronを設定することで再起動時にもう一度gにさせるようにする

sudo crontab -e -u root

このコマンドでcronの設定ファイルがエディタによって開かれるので、下記を追記して保存する

@reboot /usr/bin/ethtool -s eth0 wol g

@rebootは再起動時に実行を意味し、/usr/bin/ethtoolethtoolコマンドを絶対パスでしていしています。

この設定をすると再起動時に毎回Wake-ongに設定するコマンドが実行されます。

また、WakeOnLan時にこのPCのMacアドレスが必要になるので調べておきます。

ip addrコマンドの出力でlink/etherの

そして電源をオフにします。

以下が参考にしたサイトです。

iPhoneでラズパイにログインしてWakeOnLanを実行する

iPhoneにsshクライアントをインストールします。

私が使っているのはTermiusというサービスです。

それを使ってラズパイにログインします。

IMG_0249.png

上記の環境でWakeOnLanを実行します。

~ $ wakeonlan <Macアドレス>
Sending magic packet to 255.255.255.255:9 with <Macアドレス>

その後デスクトップPCが起動されログインできるようになります。

IMG_0250.png

これで完了です!

補足

  • 使用しているVPNのサービスはTailscaleです。

  • デスクトップPCの電源オフとログアウトは以下のコマンドを実行しています。
sudo shutdown -h now && exit

さいごに

今回はラズパイ経由でデスクトップPCを起動する方法を紹介しました。

アレクサにWakeOnLanのスキルがあり、アレクサ経由でもデスクトップを起動できるらしいので試してみたいです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?