电源管理:suspend和hibernate
suspend模式
当前有3种suspend模式:
suspend to RAM
(suspend
):状态保存和恢复都在内存中,节约的主机的电能。对于在电池状态运行的笔记本或者合上屏幕的笔记本推荐使用。suspend to disk
(hibernate
):状态保存在swap
空间并完全关闭主机。当主机电源启动,状态从swap
恢复。这也是完全没有电能消耗的模式。hybrid suspend
(suspend to both
):状态保存在swap
,但是并不关闭主机电源。相反,它激活suspend to RAM
。这样,如果电池没有耗尽时,就会从RAM中恢复主机状态。如果电池耗尽,则可以从磁盘恢复,此时恢复的时间比suspend to RAM
较长,但是不会丢失数据。
要求
(按照文档要求)软件包要求
必须卸载掉
sys-power/upower
并安装sys-power/upower-pm-utils
,这样才会在桌面环境出现Suspend
和Hibernate
按钮。另一种替代选择是使用sys-power/hibernate-script
,这种方式适用于打过swsusp
和TuxOnIce
补丁包的内核。
内核配置
可用的suspend模式
通过以下命令检查可用的suspend
模式
显示输出
suspend to RAM
使用以下命令执行suspend
或者
或者
也可以通过底层方式
或者(对于Tol)
或者(对于TuxOnIce)
suspend to disk
要能够suspend to disk需要确保系统中有swap分区或者swap文件,并且swap文件要在使用前激活
使用sys-power/pm-utils
suspend to disk
sys-power/pm-utils
suspend to disk首先检查是否具备swap分区
假设使用/dev/sdc2
分区
编辑/etc/default/grub
并添加GRUB_CMDLINE_LINUX_DEFAULT
选项有关swap分区
重建grub2配置
更新initramfs
添加以下行到/etc/pm/config.d/gentoo
重启系统
然后就可以尝试
使用swap文件suspend to disk
对于我自己的实践,我是采用Mac双启动方式来在MacBook上安装Gentoo Linux。由于分区限制,只划分了一个分区给Gentoo Linux,所以实际是采用swap文件来实现hibernate的。
创建swap文件
显示输出
查出swap文件所在磁盘分区的UUID
显示输出
计算出swap文件的偏移量
显示输出
man swap-offset
可以看到swap-offset
命令的解释是program to calculate the offset of a swap file in a partition
,所以这里我使用的是/dev/sda4
分区的UUID
修改GRUB配置
/etc/defaults/grub
(我没有进行这步,仅供使用grub的用户参考;我使用的是rEFInd的EFI bootloader,没有使用grub2)
然后重建GRUB配置
然后重启系统尝试hibernate
我使用的是EFI bootloader
rEFInd
,所以跳过刚才的配置GRUB步骤(如果你是用GRUB,没有使用rEFInd
可以忽略这步),配置EFI/refind/refind.conf
这里添加的配置就是
resume=UUID=6d6de45b-52b9-4c13-81b2-aff34a6791bd resume_offset=5382144
不过,实际我测试还是没有成功,日志中显示
待探索!!!
xfce和suspend
我使用xfce桌面环境,其内置的xfce-extra/xfce4-power-manager
则依赖sys-power/upower
而且不能很好地和upower-pm-utils
协作(休眠后会不断亮起screensaver),所以前述设置仅供参考
最终我还是卸载了upower-pm-utils
软件包,而采用xfce内建的xfce4-power-manager
(依赖sys-power/upower
软件包)。
使用suspend to RAM
方式
参考
Last updated