(2020/04/09: 少し加筆しました)
debian で wake-on-lan (WOL) を有効するには
- /etc/network/interfaces.d/eth0 で設定する方法
- /etc/network/interfaces で設定する方法
- BIOSで有効にする方法
- カーネルモジュール側で有効にする方法
などがありますが(詳細は後述),条件によってはうまく動かない場合があります
そこで別アプローチで
- /etc/network/if-up.d/wake-on-lan を用意する方法
を考えたので手順をまとめます
/etc/network/if-up.d/wake-on-lan を用意する方法
ethtoolをインストールします
$ sudo apt-get install ethtool
/etc/network/if-up.d/wake-on-lan を作成します.中身は
#!/bin/sh ETHTOOL=/sbin/ethtool test -x $ETHTOOL || exit 0 [ "$IFACE" != "lo" ] || exit 0 $ETHTOOL -s $IFACE wol g
パーミッションを変更します
$ sudo chmod a+x /etc/network/if-up.d/wake-on-lan
動作確認 (2020/04/09追記)
/etc/network/if-up.d/wake-on-lan はネットワークインタフェースが up したタイミングで自動起動されます.
DHCPを使っている場合は,一旦LANケーブルを外して,挿し直してみましょう.
これで /etc/network/if-up.d/wake-on-lan が起動します.
つぎに Wake-on-LANが有効になったか確認します
$ sudo /sbin/ethtool eth0
出力の Wake-on の行を見ます
Wake-on: g
"g" なら wake on lan が有効です."d" なら無効です
"g"や"d"の意味は以下の通りです
- "g" Ma"g"ic packet で起動する
- "d" 無効(disable)
その他の方法
参考までにその他の方法もメモしておきます
/etc/network/interfaces.d/eth0 で設定する方法
auto eth0 iface eth0 inet dhcp ethernet-wol g
Stretchの場合はこれで動くはずです
ただし以下の条件では動作しないことがあります
- Stretch 以外
- NetworkManager を使っている場合
/etc/network/interfaces で設定する方法
iface eth0 inet dhcp ethernet-wol g
Squeezeの場合はこれで動くはずです
ただし以下の条件では動作しないことがあります
- Squeeze 以外
- NetworkManager を使っている場合