设备电源管理 Copyright (c) 2010 Rafael J. Wysocki<rjw@sisk.pl>, Novell Inc. Copyright (c) 2010 Alan Sternstern@rowland.harvard.edu ************************************************************* 本文由DroidPhone翻译于2011.8.5 *************************************…
在Linux中,休眠主要分三个主要的步骤:(1)冻结用户态进程和内核态任务:(2)调用注册的设备的suspend的回调函数:(3)按照注册顺序休眠核心设备和使CPU进入休眠态.       冻结进程是内核把进程列表中所有的进程的状态都设置为停止,并且保存下所有进程的上下文.当这些进程被解冻的时候,他们是不知道自己被冻结过的,只是简单的继续执行.如何让Linux进入休眠呢?用户可以通过读写sys文件/sys /power/state 是实现控制系统进入休眠.比如: # echo standby >…
1. Based on linux2.6.32,  only for mem(SDR) 2. 有兴趣请先参考阅读: 电源管理方案APM和ACPI比较.doc Linux系统的休眠与唤醒简介.doc 3. 本文先研究标准linux的休眠与唤醒,android对这部分的增改在另一篇文章中讨论 4. 基于手上的一个项目来讨论,这里只讨论共性的地方 虽然linux支持三种省电模式:standby.suspend to ram.suspend to disk,但是在使用电池供电的手持设备上,几乎所有的方案…
新版linux系统设备架构中关于电源管理方式的变更 based on linux-2.6.32 一.设备模型各数据结构中电源管理的部分 linux的设备模型通过诸多结构体来联合描述,如struct device,struct device_type,struct class, struct device_driver,struct bus_type等. @kernel/include/linux/devices.h中有这几中结构体的定义,这里只列出和PM有关的项,其余查看源码: struct d…
Run-time PM. 每个device或者bus都会向run-time PM core注册3个callback   struct dev_pm_ops { ... int (*runtime_suspend)(struct device *dev); int (*runtime_resume)(struct device *dev); int (*runtime_idle)(struct device *dev); ... };   每个device或者bus都会有2个计数器,一个是devi…
三.pm_test属性文件读写 int pm_test_level = TEST_NONE; static const char * const  pm_tests[__TEST_AFTER_LAST] = { [TEST_NONE] = "none", [TEST_CORE] = "core", [TEST_CPUS] = "processors", [TEST_PLATFORM] = "platform", [TEST_D…
电源管理芯片可以为多设备供电,且这些设备电压电流有所同.为这些设备提供的稳压器代码模型即为regulator. 下面通过下面三个过程分析regulartor供电机制: 1.分析regulator结构体 2.regulator 注册过程 3.设备使用regulator过程 一.分析regulator结构体 Regulator模块用于控制系统中某些设备的电压/电流供应.在嵌入式系统(尤其是手机)中,控制耗电量很重要,直接影响到电池的续航时间.所以,如果系统中某一个模块暂时不需要使用,就可以通过reg…
一.运行环境 # cat /etc/redhat-release CentOS release 6.2 (Final) # uname -a Linux web-server- -.el6.x86_64 # SMP Tue Dec :: GMT x86_64 x86_64 x86_64 GNU/Linux # 硬件 DELL R420 SATA .2K 500G * # CPU Intel(R) Xeon(R) CPU E5- @ .90GHz 二.服务器异常重启日志 # grep Error…
1 文件浏览(简单回顾) 1 cat 查看文件的内容 2 more 以翻页的形式查看,但是只能向下翻页 3 less 以翻页的形式查看,但是能够支持向上和向下翻页 4 head 默认是查看前10行,但是我们指定查看的行数 5 tail 默认是查看后10行,但是我们可以指定查看的行数 2 基于关键字的搜索 假设我在家目录下创建了一个tmp.cpp 1 命令grep是基于关键字进行搜索 2 单个关键字搜索:  grep 关键字 文件名 比如我在tmp.cpp 里面搜索Linux 3 多关键字搜索:…
1 管道和重定向 1 在Linux中大多数命令都很简单,很少出现复杂的命令,每个命令只是实现一个简单的功能,我们可以通过组合不同的命令来实现复杂的功能 2 在Linux中几乎所有的命令返回的数据都是纯文本,而纯文本形式的数据绝大多数是以命令形式输入 3 多命令协作就是通过管道和重定向来完成的 4 命令行的shell的数据流定义如下 名称            说明               编号                 默认 stdin         标准输入            …