我今天一直在想办法让 Ubuntu 盒子在局域网上唤醒。这台电脑很旧了,但我在 BIOS 中找到了 WOL 选项(我还启用了 pci 唤醒)。网卡是 ADMTek NC100 Network Everywhere(修订版 11)。从我在网上读到的内容来看,它也应该支持 WOL。
首先,我尝试使用 ethtool,但由于 NIC 的驱动程序是 Tulip,ethtool 没有给我任何有关它的信息。
ethtool eth0
Settings for eth0:
No data available
ethtool -i eth0
driver: tulip
version: 1.1.15
firmware-version:
bus-info: 0000:02:0c.0
我首先尝试使用的命令是:
ethtool -s eth0 wol g
但它不起作用(我猜是因为郁金香)。
接下来我尝试修改/proc/acpi/wakeup
。初始状态是:
Device S-state Status Sysfs node
SBTN S4 *enabled
PCI1 S4 disabled pci:0000:00:1e.0
UAR1 S4 disabled pnp:00:08
USB S4 disabled pci:0000:00:1f.2
USB2 S4 disabled pci:0000:00:1f.4
AC9 S4 disabled
SMB S4 disabled pci:0000:00:1f.3
因此我尝试通过以下步骤启用 PCI 唤醒功能(尽管它不是我的以太网卡插槽):
grep 'PCI1.*enabled' < /proc/acpi/wakeup >/dev/null || \
echo PCI1 > /proc/acpi/wakeup
运行该命令后,PCI 端口被列为已启用,但 WOL 仍然不起作用。我尝试使用这个客户适用于 Windows XP。我还没有测试它是否能正常发送魔法包,但它在 Google 搜索中名列前茅,而且到处都有它的参考资料,所以我不认为问题出在这里。
我已经没什么主意了(也没有论坛可以搜索 :),所以我希望这里有人能找到解决这个问题的方法。谢谢 :)。
答案1
也许这是瞎猜,但可能是你的路由器阻塞了魔术包所需的端口吗?(我相信是端口 7)
我以前也尝试过类似的事情,在大学期间,我会在家里的电脑上启用 WOL(这样我就可以通过 ssh 备份大学工作等文件)。我遇到的一个问题是我家里的路由器阻塞了那个端口,一旦我打开它并将端口 7 上的所有流量转发到那台电脑,它就可以正常工作了
希望这可以帮助
答案2
这里是一个可以在您的卡上启用 WoL 的补丁。
适用于内核版本 2.6.24 的 Ubuntu 8.04.3 LTS,可能需要进行一些调整...
在我的安装了 Ubuntu 9.10 karmic 的机器上(但以太网卡/驱动程序与您的不同),我必须在 exit=0 之前在 /etc/rc.local 中添加这个:
ethtool -s eth0 wol g
否则,以太网卡在关机时将被禁用,从而无法接收魔术包。
WakeOnLAN 通常使用 UDP 端口 0、7 或 9。