ASRocK.N3150TM-ITX 安装ubuntu后,无法使用wol开机的解决办法
这是一个很有意思的事件,该主板很久买了,大概十年了,一直吃灰状态,最近内存和硬盘疯涨,想着搞个ubuntu玩玩,个人需求,需要能smb共享,需要能远程开机wol,需要能输出音频。看了看主板说明书,支持wol的,windows操作系统中,网卡设置一下属性就行了,研究了半天ubuntu下搞不定,后来问了chatgpt,也是一直带着我兜兜转转,后来我无意间发现了一个非常奇怪的现象,如果把电源拔掉,然后过会儿再插上,居然就可以远程开机(wol)了,前提是pcie device power on已经打开了,deep s5已经关闭。发现这个现象后,就明白了,电源重新上电瞬间 BIOS 会重新配置网卡,但是如果是正常的linux关机,系统关机前会将wol设置清楚,应该是系统或者驱动原因,本身硬件没毛病。
重要:
1、主板关闭deep s5
2、打开pcie device power on
这里是Ubuntu server 24.04
先执行:
ethtool enp3s0 | grep Wake-on
如看到:
Wake-on: d
那应该不行。执行一次:
ethtool -s enp3s0 wol g
然后:
shutdown -h now
然后试试使用wol工具,看看能不能开机,如果可以的话,进行如下操作:
搞个bash文件:
#!/bin/bash
set -e
IFACE="enp3s0"
echo "==> [1/5] 确保 ethtool 已安装"
if ! command -v ethtool >/dev/null 2>&1; then
apt update
apt install -y ethtool
fi
echo "==> [2/5] 创建 systemd .link 文件(永久 WOL)"
cat > /etc/systemd/network/99-wol.link <<EOF
[Match]
OriginalName=${IFACE}
[Link]
WakeOnLan=magic
EOF
chmod 644 /etc/systemd/network/99-wol.link
echo "==> [3/5] 添加关机兜底脚本(防驱动清空)"
cat > /lib/systemd/system-shutdown/enable-wol <<EOF
#!/bin/sh
/sbin/ethtool -s ${IFACE} wol g
EOF
chmod +x /lib/systemd/system-shutdown/enable-wol
echo "==> [4/5] 重新加载 udev + networkd"
udevadm control --reload
udevadm trigger -c add -s net
systemctl restart systemd-networkd
sleep 2
echo "==> [5/5] 当前 WOL 状态:"
ethtool ${IFACE} | grep -E "Supports Wake-on|Wake-on"
echo
echo "======================================"
echo "✅ WOL 已写入 systemd 链路层(真正永久)"
echo "👉 现在执行:reboot"
echo "👉 重启后关机测试 WOL(不要拔电)"
echo "======================================"执行后重启:
reboot
再次查看wol状态:
ethtool enp3s0 | grep Wake-on
如果显示:
Wake-on: g
那就是大功告成了。
实测关机状态下,电源多消耗0.2w。