本文共 809 字,大约阅读时间需要 2 分钟。
正在作基于Marvell 9xx 的Android平台,因为平台内核为2.6.24,而Android 1.0 Release 的是2.6.25. Android power 本对于系统来说是可选的,但为了更好的体现Android的设计思想和理念以及UI Experience, Android Power 一定要enable.经过两天的研究,终于搞定了,还算顺利且容易.从1.0版本来说,Android power的本质就是创建sysfs下的目录android_power 及相应的属性文件,并通过attribute的show/store来访问/设置power state/request. 但是由于2.6.24和2.6.25中对于Linux Driver Model尤其是kobject/kset/subsys及API的改变,导致向下移植时就要把power中对这些的改变作back porting,好在Android Power都集中在power.c文件中,不需要修改kobject.c/h等核心文件。大致工作如下:(1). 把android_power看作一个subsystem, 并声明之,为init 时的注册作准备;(2). 构建attribute_group属性组中各成员的属性 subsys_attribute 结构体(这是和2.6.25中不同的地方);(3). 分别实现subsys_attribute中的show 和store函数(这也是2.6.24和2.6.25中有明显变化的地方,24中参数为kset,25中参数为kobject和kobj_attribute);(4). 属性相关结构和函数准备好后,用sysfs_create_group向/sys/android_power_subsys注册即可;(5). 正向的作好后,再在exit和错误处理中实现反向操作。Good Luck!
转载地址:http://ypkci.baihongyu.com/