Linux suspendresume

阅读: 评论:0

Linux suspendresume

Linux suspendresume

这一节回顾一下以前学习的Linux的电源管理模块,整个流程如下:

1:内核中的相关配置

在3.4.43内核配置中,Linux/arm 3.4.43 Kernel Configuration:

Power management options  ---> 

 [*] Suspend to RAM and standby        //STR的支持

[*] Run-time PM core functionality 

 

2:用户的接口:sysfs接口,各个kobj_attribute

相关源码位于:kernel/power/main.c

static int __init pm_init(void)
{
 int error = pm_start_workqueue();                                         //如果使能CONFIG_PM_RUNTIME,这函数将分配一个workqueue,否则函数为NULL.
 if (error)
  return error;
 hibernate_image_size_init();                                                 //以下两个函数与hibernate有关,也就是suspend to disk.
 hibernate_reserved_size_init();
 power_kobj = kobject_create_and_add("power", NULL);   //建立一个名为"power"的kobject,并注册到sysfs
 if (!power_kobj)
  return -ENOMEM;
 return sysfs_create_group(power_kobj, &attr_group);  //在"power"的目录kobject下建立属性组。
}

重点在于attr_group, 看下面代码:

static struct attribute * g[] = {
 &state_attr.attr,
#ifdef CONFIG_PM_TRACE                                                     //没有打开
 &pm_trace_attr.attr,
 &pm_trace_dev_match_attr.attr,
#endif
#ifdef CONFIG_PM_SLEEP             //打开
 &pm_async_attr.attr,
 &wakeup_count_attr.attr,
#ifdef CONFIG_PM_DEBUG              //可以打开
 &pm_test_attr.attr,
#endif
#endif
 NULL,
};

static struct attribute_group attr_group = {
 .attrs = g,
};

power_attr(pm_async);

power_attr(pm_test);

power_attr(state);

power_attr(wakeup_count);

在kernel/power/power.h

#define power_attr(_name)
static struct kobj_attribute _name##_attr = { 
 .attr = {    
  .name = __stringify(_name), 
  .mode = 0644,   
 },     
 .show = _name##_show,   
 .store = _name##_s

本文发布于:2024-01-28 02:18:27,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063795134076.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:Linux   suspendresume
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23