2016-03-25 28 views
0

我正在努力在ARM上实现休眠(挂起到磁盘),并已通过使用swsusp ARM patch by Sebastian Capella成功完成了该操作。现在我可以使用命令echo disk > /sys/power/state休眠(暂停交换分区sd卡)内核,系统将在下次开机时恢复其状态。但是如果我再次按下reset,内核将按照正常的启动顺序进行。ARM上的Hibernate Linux

我的问题是,如何使交换区域和冬眠图像在该区域永久保存,以便在每次重置时都会从永久图像中唤醒?我已给出swapiness=0的值,以便我期望在系统处于活动状态时不会再有任何页面交换。内核是如何决定是否正常启动或从(resume=/dev/swap_partition)休眠中唤醒?

我搜索了很多互联网上,但并没有得到有关如何Linux内核从休眠中醒来,什么恢复once.Thank您的时间以后,会做掉

我的内核版本是一个明确的想法3.14

回答

0

这里是Linux的休眠的API的一些代码跟踪电话:

http://www.srcmap.org/sd_share/4/839d1dea/Linux_kernel_Hibernation_Resume.html

大部分代码跟踪的是为PowerPC。但它可能会让您对内核从休眠状态恢复流程有所了解。

对于ARM,也许你需要:

  • 在休眠状态,只是标志着永久交换文件交换文件。
  • 在恢复时,防止系统将交换文件作为休眠文件“取消标记”。
  • 要非常小心内核映像的升级,交换文件内容与内核映像紧密结合。内核中的任何轻微chg /重新编译都会将交换文件标记为无效并触发重新引导操作。为此添加大量的printk()日志。