银河麒麟v10休眠后无法被键盘、鼠标或网络唤醒,需三层协同:bios禁用erp/eup并启用wol;内核层用ethtool和udev规则持久化网卡wol g;usb唤醒需通过lsusb查设备id、udev规则启用对应路径power/wakeup;最后禁用logind对电源键和合盖事件的接管。

银河麒麟V10休眠后无法被键盘、鼠标或网络信号唤醒,导致必须长按电源键强制开机——这是因为系统默认仅响应物理电源键事件,而USB设备唤醒和网络唤醒(WOL)需在内核、驱动、固件三层分别显式启用,缺一不可。
启用USB设备唤醒(键盘/鼠标)
第一步:确认USB控制器支持唤醒功能
执行ls /sys/bus/usb/devices/*/power/wakeup,若输出中包含enabled或disabled字样,说明硬件支持;若报错“没有那个文件或目录”,则主板USB控制器不支持唤醒,跳过本节。
第二步:临时启用指定USB设备唤醒
运行lsusb -t找到键盘或鼠标对应的总线号与设备号(如/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p),再执行echo enabled | sudo tee /sys/bus/usb/devices/2-1/power/wakeup(将2-1替换为实际路径)。这一步仅对当前会话生效。
第三步:永久启用并绑定设备
创建/etc/udev/rules.d/99-usb-wakeup.rules,写入:ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="046d", ATTR{idProduct}=="c52b", RUN+="/bin/sh -c 'echo enabled > /sys$devpath/power/wakeup'"(【idVendor与idProduct必须用lsusb -v | grep -E "(idVendor|idProduct)"查实,填错将导致规则失效】)。保存后执行sudo udevadm control --reload-rules && sudo udevadm trigger。
配置网络唤醒(WOL)
此方法用于关机或休眠状态下通过局域网远程开机,需BIOS、网卡驱动、系统服务三者协同。
方法一:BIOS层启用WOL
关机后立即按Delete或F2进入BIOS → 切换至Advanced → Power Management → 找到Wake on LAN、PME Event Wake Up或Resume by PCI Device → 设为Enabled。【务必同时禁用ErP Ready/EuP 2013,否则网卡无待机电压,WOL彻底无效】
方法二:系统层启用并持久化
终端中执行ip -br a | grep UP确认有线网卡名(如enp3s0)→ 运行sudo ethtool enp3s0 | grep "Supports Wake-on",若含g且Wake-on值为d,则执行sudo ethtool -s enp3s0 wol g临时启用 → 创建/etc/udev/rules.d/99-wol.rules,写入:ACTION=="add", SUBSYSTEM=="net", KERNEL=="enp3s0", RUN+="/sbin/ethtool -s %k wol g"(接口名需替换)→ 重载规则:sudo udevadm control --reload-rules && sudo udevadm trigger。
禁用干扰性休眠拦截机制
银河麒麟V10默认启用logind对电源事件的接管逻辑,会覆盖USB/WOL唤醒设置,必须关闭。
① 编辑配置:sudo nano /etc/systemd/logind.conf
② 找到并取消注释以下两行,修改为:HandleLidSwitch=ignoreHandlePowerKey=ignore
③ 保存后执行sudo systemctl restart systemd-logind——【不重启该服务,修改完全不生效】
④ 验证是否生效:loginctl show-session $(loginctl | grep "seat" | awk '{print $1}') -p Type,输出应含Type=idle而非Type=lock。











