必须先确认BIOS中USB唤醒功能已启用,再依次验证内核唤醒设备状态、修复USB设备节点权限与电源策略,最后重建udev规则和initramfs并测试唤醒效果。

银河麒麟系统休眠后按键盘或移动鼠标无法点亮屏幕、唤醒系统,必须从固件层、内核层、服务层三线并进排查——跳过BIOS确认将直接导致后续所有操作无效。
确认BIOS中USB唤醒功能已启用
开机时连续按Del或F2键进入BIOS,定位到【Advanced】→【USB Configuration】或【Power Management Setup】菜单。找到“USB Keyboard/Mouse Power On”“Wake by USB Device”“XHCI Hand-off”三项,确保全部设为Enabled。部分国产主板(如中科曙光K1500)还需关闭“ErP Ready”并开启“Deep Sleep Control”。修改后按F10保存退出。
若找不到对应选项,说明主板固件未开放该能力,需前往厂商官网下载最新BIOS刷新——旧版固件对Intel 12/13代CPU的ACPI S3唤醒支持存在硬性缺失。
验证内核是否识别唤醒资格
启动系统后打开终端,执行:cat /proc/acpi/wakeup | grep -i "usb\|xhc\|ehci"。
输出中每行第一列为设备名(如XHC、EHC1),第二列为enabled/disabled。若关键项显示disabled,执行:echo XHC | sudo tee /proc/acpi/wakeup 启用主控;对多个USB控制器需逐个操作。
注意:该命令仅临时生效,重启后失效。必须配合后续udev规则固化,否则每次开机都要重输。
检查设备节点唤醒权限与运行时电源策略
方法一:强制启用USB HID设备唤醒能力
执行:sudo sh -c 'echo enabled > /sys/bus/usb/devices/*/power/wakeup 2>/dev/null'。此命令遍历所有USB设备,向其power/wakeup写入enabled。若报错“Permission denied”,说明当前用户无/sys目录写权限,需切换root执行。
方法二:禁用USB运行时挂起
编辑配置文件:sudo nano /etc/laptop-mode/conf.d/runtime-pm.conf。
将CONTROL_USB设为0,并在BLACKLIST参数后追加usbhid usb-storage,保存退出。
执行:sudo systemctl restart laptop-mode。
重建唤醒链路并验证结果
第一步:刷新udev规则与initramfs
执行:sudo udevadm control --reload-rules && sudo udevadm trigger --subsystem-match=usb。
再执行:sudo dracut -f,强制重建初始内存盘,使ACPI唤醒配置固化进启动镜像。
第二步:重启并测试唤醒行为
执行:sudo systemctl suspend 触发S3挂起,等待系统黑屏且电源灯变为呼吸状态后,敲击任意键或移动鼠标。
若屏幕仍不亮,立即按Ctrl+Alt+F2切出TTY,执行:dmesg | tail -20 | grep -i "wakeup\|suspend",查找是否有"ACPI: EC: event blocked"或"usb 1-1: failed to set power_state"类错误。
第三步:最终验证命令
执行:powercfg -devicequery wake_armed 2>/dev/null || echo "非Windows环境,请改用 cat /proc/acpi/wakeup | grep enabled" —— 银河麒麟不支持powercfg,此句仅为防误粘贴Windows教程的提醒。
执行:cat /proc/acpi/wakeup | grep enabled | grep -i usb,确认XHC及对应USB设备已稳定处于enabled状态。











