C ноутами ASUS давно происходит неприятное - если ноут заснул на батарейке, а просывается подключенный к сети, то нормально он не проснется - придется выключать.
Это связано с новыми режимами энергосбережения и некорректной их обработкой.

Диагностика

cat /sys/power/mem_sleep

Если тут deep, то все хорошо - это классический S3 и все будет работать, но на новых ядрах (7.x) его выпиливают.
у меня последнее ядро 7.1 и тут у меня

[s2idle]

а это означает, что ноут работает с новыми (и глючными) режимами энергосбережения (S0ix).
То есть ядро никогда полностью не спит, а слушает.
Подключение адаптера питания при закрытой крышке интерпретируется как wake/ACPI событие и машинка пытается проснуться, но безуспешно.

Варианты лечения

  • Первое что стоит сделать - проверить в BIOS, возможно там можно переключиться на режим S3 и все должнго стать сразу хорошо.
  • Пробуем переключиться в deep:
    echo deep | sudo tee /sys/power/mem_sleep

    Если команда выполняется без ошибок и дальше ноут нормально засыпает-просыпается, то можно прописать такое:

    GRUB_CMDLINE_LINUX_DEFAULT="... mem_sleep_default=deep"

    в строку запуска ядра и ноут будет спать спокойно.

  • Если deep не включается:

    # echo deep | /sys/power/mem_sleep
    bash: /sys/power/mem_sleep: Permission denied

    то после неудачного просыпания можно попытаться почитать логи ядра предыдущей загрузки, хотя там может ничего и не оказаться:

    journalctl -b -1 -k -e

  • Можно попытаться отключить события ACPI от подозрительных девайсов:

    cat /proc/acpi/wakeup | grep enabled
    GPP0      S4    *enabled   pci:0000:00:01.1
    GPP1      S4    *enabled   pci:0000:00:01.2
    GPP3      S4    *enabled   pci:0000:00:02.1
    XHC1      S0    *enabled   pci:0000:c4:00.4
    XHC0      S0    *enabled   pci:0000:c6:00.0
    XHC3      S0    *enabled   pci:0000:c6:00.3
    XHC4      S0    *enabled   pci:0000:c6:00.4
    NHI0      S0    *enabled   pci:0000:c6:00.5
    NHI1      S0    *enabled   pci:0000:c6:00.6

    и попытаться это выключить:

    $ echo GPP3 | sudo tee /proc/acpi/wakeup
    GPP3
    $ cat /proc/acpi/wakeup | grep enabled
    GPP0      S4    *enabled   pci:0000:00:01.1
    GPP1      S4    *enabled   pci:0000:00:01.2
    XHC1      S0    *enabled   pci:0000:c4:00.4
    XHC0      S0    *enabled   pci:0000:c6:00.0
    XHC3      S0    *enabled   pci:0000:c6:00.3
    XHC4      S0    *enabled   pci:0000:c6:00.4
    NHI0      S0    *enabled   pci:0000:c6:00.5
    NHI1      S0    *enabled   pci:0000:c6:00.6

    и сделать это постоянным с помощью правила udev:

    # find the device path, then read attributes
    udevadm info -a -p /sys/bus/pci/devices/0000:02:00.0 | grep -E 'KERNEL|vendor|device'
    
    echo 'SUBSYSTEM=="pci", KERNEL=="0000:02:00.0", ATTR{power/wakeup}="disabled"' > /etc/udev/rules.d/90-disable-wakeup.rules

    или

    echo 'SUBSYSTEM=="pci", ATTR{vendor}=="0x8086", ATTR{device}=="0x1234", ATTR{power/wakeup}="disabled"' > /etc/udev/rules.d/90-disable-wakeup.rules

    и применяем:

    sudo udevadm control --reload
    sudo udevadm trigger --action=add /sys/bus/pci/devices/0000:02:00.0
    cat /sys/bus/pci/devices/0000:02:00.0/power/wakeup   # should say: disabled
Enter your comment. Wiki syntax is allowed:
 
  • linux_faq/asus_laptop_sleep_issue.txt
  • Last modified: 2026/07/03 12:06
  • by admin