C ноутами ASUS давно происходит неприятное - если ноут заснул на батарейке, а просывается подключенный к сети, то нормально он не проснется - придется выключать.
Это связано с новыми режимами энергосбережения и некорректной их обработкой.
cat /sys/power/mem_sleep
Если тут deep, то все хорошо - это классический S3 и все будет работать, но на новых ядрах (7.x) его выпиливают.
у меня последнее ядро 7.1 и тут у меня
[s2idle]
а это означает, что ноут работает с новыми (и глючными) режимами энергосбережения (S0ix).
То есть ядро никогда полностью не спит, а слушает.
Подключение адаптера питания при закрытой крышке интерпретируется как wake/ACPI событие и машинка пытается проснуться, но безуспешно.
echo deep | sudo tee /sys/power/mem_sleep
Если команда выполняется без ошибок и дальше ноут нормально засыпает-просыпается, то можно прописать такое:
GRUB_CMDLINE_LINUX_DEFAULT="... mem_sleep_default=deep"
в строку запуска ядра и ноут будет спать спокойно.
# echo deep | /sys/power/mem_sleep bash: /sys/power/mem_sleep: Permission denied
то после неудачного просыпания можно попытаться почитать логи ядра предыдущей загрузки, хотя там может ничего и не оказаться:
journalctl -b -1 -k -e
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