我有一台 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 机器已启动,希望这能有所帮助