System refuses to suspend

Mad*_*ter 6 server lubuntu suspend power-management amd-processor

Lubuntu 18.04 (lxde) here, upon AMD Epyc 7282. Kernel 4.15. The system is stable and works flawlessly, but id does refuse to suspend.

If I try to suspend it, the screen blanks, but the system does not power off.

At this point, if I hit a key or move the mouse, nothing happens. If I hit the power button, the system "wakes up", presenting the login screen, and then all the applications as I left them.

Hibernation is absent alltogether.

Note that Epyc Rome is not affected by the notorious RDRAND bug which affects Ryzen 3000 and causes problems with suspend to ram.

EDIT: I used the system for days with high load, and can confirm rock stability, but if I leave it blanking the monitor, there is no way to wake it up.. One has to connect via ssh and reset the system.

EDIT(II): Example output for journalctl -u systemd-suspend.service:

gen 25 04:33:52 epyc systemd[1]: Starting Suspend...
gen 25 04:33:52 epyc systemd-sleep[1743]: Suspending system...
gen 25 04:34:36 epyc systemd-sleep[1743]: System resumed.
gen 25 04:34:36 epyc systemd-sleep[1743]: /dev/sda:
gen 25 04:34:36 epyc systemd-sleep[1743]:  setting Advanced Power Management level to 0xfe (254)
gen 25 04:34:36 epyc systemd-sleep[1743]:  APM_level        = 254
Run Code Online (Sandbox Code Playgroud)

EDIT (III): I actually managed to hibernate the system using uswsusp, by specifying explicitly the resume device, that is, the swap partition:

sudo s2disk -r /dev/sda1
Run Code Online (Sandbox Code Playgroud)

In such condition the system does shut down visualizing SNAPSHOTTING THE SYSTEM...

If I power on, the system does boot saying RESUMING FROM HIBERNATION... but then, it just displays the desktop, with no trace of any application left open. I will investigate the logs and report back.

da_*_*pin 0

已知某些 ACPI BIOS 在 Linux 中存在错误,这可能不适用于所有系统。我确实相信 ubuntu 风格默认禁用休眠功能。检查并确保文件在文件开头附近的行中/etc/default/grub包含该参数。要快速检查,请从终端输入:resumeGRUB_CMDLINE_LINUX_DEFAULT=

head -n 15 /etc/default/grub
Run Code Online (Sandbox Code Playgroud)

该行应类似于以下示例:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=26623446-028a-415d-e685-8adc53740282"
Run Code Online (Sandbox Code Playgroud)

如果您的简历值包含resume=/dev/sda1,我建议将其更改为 UUID 数字。设备标识符“/dev/sda1”并不总是持久的,并且当系统引入新驱动器时可能会发生变化。UUID 将保持唯一。要查找交换分区的 UUID#:

lsblk -o +uuid | grep -i swap
Run Code Online (Sandbox Code Playgroud)

作为一个好习惯,在更改之前对原始文件进行备份。

sudo cp /etc/default/grub /etc/default/~grub.bak.`date '+%Y-%m-%d'`
Run Code Online (Sandbox Code Playgroud)

如果您对该文件进行了任何更改/etc/default/grub,则需要更新 grub 配置:

sudo update-initramfs -u
Run Code Online (Sandbox Code Playgroud)

读取输出并确认 initramfs 恢复挂钩指向正确的分区。然后

sudo update-grub
Run Code Online (Sandbox Code Playgroud)

然后尝试休眠系统:

sudo systemctl hibernate
Run Code Online (Sandbox Code Playgroud)

如果系统立即恢复,则登录并阅读dmesg以查看最近的任何 [PM] 错误,并再次查看日志以查找可能存在的问题。