解决ubuntu20.*在笔记本电脑上休眠耗电问题,并起不来的问题

linux suspend mode

    linux 有多种suspend模式,其中这里需要关注的是S3(suspend-to-ram)和S4(suspend-to-disk)模式,S3模式下仅有ram保持供电,恢复速度较快,而S4模式下会在休眠时将ram dump到磁盘中(放在专门的swap分区或者swap文件中),休眠期间基本不消耗电力,唤醒时再从磁盘中将ram内容恢复出来,此时唤醒速度会慢于S3,具体时间取决于ram大小和ram与disk之间的传输性能。

一般情况下S3模式已经足够,但希望较为彻底改善休眠续航的问题,则还是需要使用S4模式,即hibernate mode

1. 确认S3模式可用
1
2
3
4
5
6
7
8
9
$ sudo apt install pm-utils

$ pm-is-supported --suspend

$ echo $?

0 # 如果结果是0,则表示支持.

$ sudo pm-suspend # 直接进入S3休眠模式
2. 确认S4模式可用
1
2
3
4
5
$ sudo apt install pm-utils
$ pm-issupported --hibernate
$ echo $?
# 如果结是果是0,则表示支持
$ sudo pm-hibernate # 直接进入S4待机模式

如果可以成功进入S4模式,则笔记本会自动息屏,同时按下电源键可以唤醒, 如果不能够成功休眠,使用

1
$ sudo dmesg | grep PM

应该可以查看是否进入hibernate 成功或者失败,如果显示fail,则需要使能S4模式

3. 使能S4待机模式

    S4模式需要swap partition或者swap file的支持,目前新的ubuntu版本默认都是使用swap file,位于/swapfile, S4模式需要swapfile的大小不小于ram大小。

通过设置swapfile来使能S4模式,请看[通过设置swaptfile来使能hibernamte模式](Hibernate and resume from a swap file - Ask Ubuntu)

完成后,再进行

1
$ sudo pm-hibernate # 进入hibernate验证。这时要按电源键开机。

    如果成功了则

1
$ seervice systemd-hibernate start