Chinaunix首页 | 论坛 | 博客
  • 博客访问: 489570
  • 博文数量: 153
  • 博客积分: 3010
  • 博客等级: 中校
  • 技术积分: 1724
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-08 11:55
文章分类

全部博文(153)

文章存档

2011年(1)

2010年(55)

2009年(88)

2008年(9)

我的朋友

分类: LINUX

2009-01-16 17:34:55


正在作基于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!

appending:
ensuring the following attributes, which is important for them.

chown radio system /sys/power/state
chown radio system /sys/power/wake_lock
chown radio system /sys/power/wake_unlock
chmod 0660 /sys/power/state
chmod 0660 /sys/power/wake_lock
chmod 0660 /sys/power/wake_unlock
阅读(843) | 评论(0) | 转发(0) |
0

上一篇:Android Binder and Key IPCs

下一篇:

给主人留下些什么吧!~~