网络唤醒适用于 Windows 8,但不适用于 Ubuntu

网络唤醒适用于 Windows 8,但不适用于 Ubuntu

我有一台 PC,其中有一个 Windows 8 分区和一个 Ubuntu 13.04 分区。我正在尝试让局域网唤醒功能正常工作。Windows 8 分区上一切正常:我可以从睡眠状态和关机状态进行局域网唤醒。但是,当我使用以下命令关闭 Ubuntu 时:

sudo shutdown -h now

我无法通过 LAN 唤醒 PC。这是因为网络接口已关闭吗?我可以使用什么命令或如何重新配置​​ Ubuntu 以使 LAN 唤醒仍然有效?

另外,如果我没有在关机命令中使用 -h 选项,PC 实际上并不会关闭;它只是冻结了。

使用 ethtool 时,我发现它显示:

Supports Wake-on: pumbg
Wake-on: g
...
Link detected: yes

我的 etc/network/interfaces 表示:

auto eth0
iface eth0 inet dhcp
      up ethtool -s eth0 wol g

编辑:我发现,如果我只需按住电源按钮即可关闭 PC,则 wol 可以正常工作。如果我使用命令行或通过 Ubunutu GUI 关机,则它不起作用。所以我认为问题不在于它没有正确设置,而是在我正确关机时有某些东西覆盖了它或将其关闭。是否有任何脚本在关机时运行?

我已经添加了

NETDOWN=no

同时到 etc/default/halt 和 etc/init.d/halt

答案1

您的命令很接近,但在命令行中尝试这个:

sudo ethtool -s <NIC> wol g

或者将其添加到您的 /etc/network/interfaces 文件中:

auto eth0
iface eth0 inet dhcp
    up ethtool -s eth0 wol g

‘g’ 通过“Magic Packet”启用唤醒

看起来如果您使用以下命令关闭:

sudo shutdown -h now  

然后你还需要编辑 /etc/default/halt 文件。添加以下行:

NETDOWN=no

看看是否有效。这应该可以防止 -h (halt) 关闭网络接口。

答案2

这就是我如何让它工作(今天早上刚做完)

我在 /etc/init.d/ 中以 root/sudo 身份创建了一个名为 wakeonlanconfig 的文件,其中包含以下内容

#! /bin/bash
ethtool -s eth0 wol g
exit

然后我将此文件的权限设置为

sudo chmod a+x wakeonlanconfig

然后确保它在启动时执行,我做了

sudo update-rc.d -f wakeonlanconfig defaults

并重新启动机器,再次关闭电源,然后从网络上的另一台机器使用 wakeonlan 命令重新启动它

wakeonlan <mac address of machine to be woken up>

嘿,Presto 机器已启动,希望这能有所帮助

相关内容