解决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.conf
的 MODULES=
里,使用 mkinitcpio -P
指令重新生成内核
我这么干了,但问题依旧。
方案3:
https://www.vlo.cc/notes/14
https://bbs.archlinuxcn.org/viewtopic.php?id=14252
systemd-hibernate-resume
和 busybox initramfs
似乎不太兼容,换成基于 systemd
的 initramfs
似乎即可解决该问题。
首先打开 /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
重启后,问题解决!