解决Arch Linux的睡眠无法唤醒问题

2025-05-12

我的Arch有时陷入睡眠状态后,再尝试唤起有大概率导致唤醒失败。

根据网友们的方案,我似乎解决了上述问题。

方案1:

https://bbs.archlinuxcn.org/viewtopic.php?id=14610

“添加内核参数, 然后禁用Nvidia的几个服务?”

问题依旧。

方案2:

https://bbs.archlinuxcn.org/viewtopic.php?id=13392

使用 Intel CPU 并为触摸板加载了 intel_lpss_pci 模块的电脑,在休眠/睡眠后可能会出现黑屏、无法唤醒的情况

intel_lpss_pci 添加到 /etc/mkinitcpio.confMODULES= 里,使用 mkinitcpio -P 指令重新生成内核

我这么干了,但问题依旧。

方案3:

https://www.vlo.cc/notes/14
https://bbs.archlinuxcn.org/viewtopic.php?id=14252

systemd-hibernate-resumebusybox initramfs 似乎不太兼容,换成基于 systemdinitramfs似乎即可解决该问题。

首先打开 /etc/mkinitcpio.conf

sudo nano /etc/mkinitcpio.conf

找到 HOOKS=xxx这一行。 例如,在我这里,该行内容如下:

HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block filesystems fsck)

删掉 udev, kms 在合适的位置增加 systemd, resume。在我这里,修改后的该行内容是:

HOOKS=(base systemd autodetect microcode modconf keyboard keymap consolefont block filesystems resume fsck)

完毕后, 使用命令:

# 重新生成 initramfs 镜像
sudo mkinitcpio -P

# 更新 GRUB 配置
sudo grub-mkconfig -o /boot/grub/grub.cfg

重启后,问题解决!