必须打通BIOS、内核驱动与系统服务三层:BIOS启用Wake-on-LAN并禁用ErP/EuP节能;用ethtool临时启用wol g并以udev规则持久化;禁用systemd休眠目标;最后用etherwake发魔术包验证。

要在银河麒麟V10操作系统中实现关机后通过局域网远程开机,必须让网卡在S5软关机状态下仍能接收并响应魔术包(Magic Packet),这需要BIOS、内核驱动、系统服务三者协同生效,缺一不可。
第一步:在BIOS中启用Wake-on-LAN并禁用节能模式
关机后按Delete/F2/F12键进入BIOS设置界面,不同主板按键略有差异,若错过自检画面需重启再试。
切换至Advanced或Power Management选项卡,找到Wake on LAN、Resume by LAN、PME Event Wake Up等名称相近的选项,将其设为Enabled。
【务必禁用ErP Ready、EuP 2013或Deep Sleep Control】——否则网卡将失去+3.3Vaux待机电压,WOL彻底失效,这是90%用户配置失败的根源。
按F10保存退出,系统自动重启,此时BIOS层配置已就绪。
第二步:在麒麟V10中启用网卡WOL支持并持久化
打开终端,执行ip -br a | grep UP,确认有线网卡接口名(如enp2s0、eth0),无线网卡不支持WOL,切勿选错。
运行sudo ethtool enp2s0(将enp2s0替换为你的实际接口名),检查输出中Supports Wake-on是否含g,且Wake-on当前值为d;若非g,说明硬件支持但未启用。
临时启用:执行sudo ethtool -s enp2s0 wol g,立即生效但重启后丢失。
永久生效推荐使用udev规则:创建/etc/udev/rules.d/99-wol.rules,写入一行:ACTION=="add", SUBSYSTEM=="net", KERNEL=="enp2s0", RUN+="/sbin/ethtool -s %k wol g"(注意替换接口名)。
重载规则:sudo udevadm control --reload-rules && sudo udevadm trigger,无需重启即可应用。
第三步:排除休眠与双系统干扰
若主机曾安装Windows,必须关闭其“快速启动”功能——该功能使关机实为混合休眠,内核未释放网卡控制权,WOL无法响应。
在麒麟系统中执行sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target,彻底禁用systemd休眠目标,防止服务意外触发深度休眠覆盖WOL状态。
验证当前电源状态是否为纯关机:执行cat /sys/power/state,输出应包含mem和disk,但不含freeze;若含freeze,说明存在残留休眠策略需清理。
第四步:发送魔术包并逐层验证
方法一(本机测试):安装etherwake工具:sudo apt install etherwake,然后执行sudo etherwake -i enp2s0 xx:xx:xx:xx:xx:xx(xx部分替换为目标机网卡MAC地址)。
方法二(跨设备唤醒):在另一台Linux或Windows主机上使用WakeMeOnLan、Depicus等工具,填入目标机IP(或广播地址255.255.255.255)及MAC地址发送。
关键验证点:关机后用手机热点连接同一交换机,用另一台设备ping目标IP,应不通;发送魔术包后若机器启动,说明WOL链路完整。若无反应,需回溯检查BIOS供电、网卡驱动是否加载(lsmod | grep e1000e等)、交换机是否开启EEE节能(某些型号会丢弃60字节以下的WOL包)。

















