我正在尝试让 Wake On Lan 在我的 Ubuntu 服务器 (16.04.7 LTS) 上运行。我有一台 AsRock G31M-GS
- 我在 BIOS 上设置了 WoL
- 我已在 eth0 上启用 WoL(方法 g)
- 我添加了一个脚本,以便 eth0 在启动时保持为 g。
我可以确认重启后 eth0 仍为 g。
但关机后网卡上的灯就熄灭了。目前,只有当我暂停(pm-suspend
)电脑时,WOL 才会工作。有什么想法吗?
答案1
经过无数个小时的思考,我找到了解决方案。尽管软件方面的所有功能都已启用,但我需要修复硬件方面的问题。查看主板手册后,我发现有一个跳线设置可以禁用 EuP: 手册中的跳线设置
随着 EuP 的禁用,WoL 终于可以使用了。
如果启动后网卡坏了(Failed to start Raise network interfaces
),则需要使用此脚本“重置”它(来源)每次启动后:
#!/bin/sh
# e.g. rtl_up.sh eth0
ETHDEV=$1
modprobe -r r8168
modprobe r8168 speed=100 duplex=1 autoneg=0
ethtool $ETHDEV | grep detect
ifconfig $ETHDEV up && mii-tool -F 100baseTx-FD $ETHDEV
ethtool $ETHDEV | grep detect
dhclient $ETHDEV
ifconfig $ETHDEV
ethtool -s $ETHDEV wol g
exit 0
将其保存在文件中,使其可执行,并在/etc/systemd/system/network-online.target.wants/networking.service
该行后添加此行ExecStart
:
ExecStartPost=/bin/bash /path/to/script
重启。