首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux 电源管理子系统

Linux 电源管理非常复杂,牵扯到系统级的待机、频率电压变换、系统空闲时的处理以及每个设备驱动对系统待机的支持和每个设备的运行时(Runtime)电源管理,可以说它和系统中的每个设备驱动都息息相关。...对于消费电子产品来说,电源管理相当重要。因此,这部分工作往往在开发周期中占据相当大的比重,下图呈现了 Linux 内核电源管理的整体架构。...5)设备驱动针对系统挂起到 RAM/硬盘 的一系列入口函数。 6)SoC 进入挂起状态、SDRAM 自刷新的入口。 7)设备的运行时动态电源管理,根据使用情况动态开关设备。...6、Regulator 驱动 Regulator是Linux系统电源管理的基础设施之一,用于稳压电源的管理,是各种驱动子系统中设置电压的标准接口。...少数嵌入式Linux系统会实现挂起到硬盘(简称STD),它与挂起到RAM的不同是s2ram并不关机,STD则把系统的状态保持于磁盘,然后关闭整个系统

2.8K20

Linux 电源管理子系统

Linux 电源管理非常复杂,牵扯到系统级的待机、频率电压变换、系统空闲时的处理以及每个设备驱动对系统待机的支持和每个设备的运行时(Runtime)电源管理,可以说它和系统中的每个设备驱动都息息相关。...对于消费电子产品来说,电源管理相当重要。因此,这部分工作往往在开发周期中占据相当大的比重,下图呈现了 Linux 内核电源管理的整体架构。...5)设备驱动针对系统挂起到 RAM/硬盘 的一系列入口函数。 6)SoC 进入挂起状态、SDRAM 自刷新的入口。 7)设备的运行时动态电源管理,根据使用情况动态开关设备。...6、Regulator 驱动 Regulator是Linux系统电源管理的基础设施之一,用于稳压电源的管理,是各种驱动子系统中设置电压的标准接口。...少数嵌入式Linux系统会实现挂起到硬盘(简称STD),它与挂起到RAM的不同是s2ram并不关机,STD则把系统的状态保持于磁盘,然后关闭整个系统

3.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

Linux电源管理-Autosleep

autosleep一种强大的电源管理方法,只要在系统没有什么事情可做的时候,整个系统就睡眠下去。此机制在android手机上非常有效,同时也能阻止不良应用程序一直保持系统唤醒,浪费电池。...但是重要的是: 如何判断当前系统没有事情可做,也就是如何判断系统在空闲状态?...这时候wakeup event framework的出现就可以解决此问题,当系统中没有wakeup event事件的时候,就尝试系统suspend。...在系统产生wakeup event之后,唤醒系统之后再次读取wakeup count的数量。 5. 如果读取数量和suspend保存的一样,说明有不明原因唤醒系统。...C: 这时候系统就会在没事做的时候尝试suspend。 D: 如果有唤醒事件,系统就会从睡眠中唤醒。

2.7K20

Linux电源驱动-Linux Cpuidle Framework

前言 现如今,Linux处理器电源管理重点聚焦在处理器处于运行状态时对其进行电源管理,主要的技术是Cpufreq: 根据cpu的负载,实时的改变cpu的频率或这电压,同时管理处理器的性能水平和电源功耗等...面对在火热移动处理器市场的前提下,众多处理器都亟待加入到空闲状态下进行功耗管理,这时候linux系统就需要一套通用的架构来管理这些cpu,这就是本文的标题: Linux Cpuidle Framework...linux使用cpuidle_state结构用来表示各个idle状态。...linux系统使用cpuidle_device结构抽象每个cpu core,可以简单认为cpuidle_device对应到每个cpu core上。....rating: governor的级别,张常情况下,系统会选择系统中raing值最大的governor作为当前的governor。

22.1K20

Linux电源管理-Linux regulator framework概述

如果一个系统只有一个regulator,而且只对一个设备控制的话,完全没必要使用linux regulator framework机制。...但是如果一个系统几个甚至十几个regulator,每个regulator之间还存在级连关系,这时候就需要Linux regulator framework。 2....有些设备只需要enable/disable电源即可,而有些设备在运行的过程中需要动态的改变voltage或者current,Linux regulator Framework会如何处理这些问题?....uV_offset: consumer看到的电源和实际电源之间的偏移值,用于电源补偿。 .min_uA/max_uA: 最小/最大的输出电流。....ramp_delay: 改变电压到电源稳定后时间。因为硬件原因,改变电源后不能立刻就成功,其中需要有一定的延迟。 .enable_time: regulator的使能时间。

3.6K52

Linux升级glibc后无法进入系统

从源码安装升级glibc对于版本老的系统的非常危险的。我使用编译源码的方式将glibc由2.3升级到2.9, 解决了系统ls等各种指令不好使的问题后以为万事大吉。...结果重启系统发现系统无法进入了,森马都做不了了。网上的办法试了很多,没有完全能解决问题的。最后,综合网上各种办法,终于解决了问题。...将这些安装包和静态库放入一个U盘中,U盘插入无法进入系统的服务器。 准备一张和原系统一致或者接近版本(我原系统是rhel4.5,光盘是rhel4.6)的系统盘,放入光驱。 开机快速按F2,进入 ?...执行chroot /mnt/sysimage ,这个指令使你由当前光盘系统切换到原系统,执行pwd和ls可以看到,你所处的目录就是原系统的根目录,你得身份也变成了原系统的管理员。 ?...在上图光标处在输入exit回车 ,系统会重新启动。修改BIOS设置系统从硬盘启动,原系统应该可以正常开机进入了。

12K30

Linux电源管理-wakeup count

在进行suspend之前,需要先获取系统中总的wakeup event数量。 2. 将获得的值保存到全局变量saved_count中。 3. 此后可能系统已经进入了suspend的流程中。...如果不同,则终止系统suspend。否则继续执行suspend流程。 那wakeup event framework是如何保存当前系统中所有的wakeup event?...通常思路: 用一个变量记录当前系统发生的所有wakeup event,用另一个变量记录当前是否有wake events在处理。 那Linux内核到底是如何记录这两个变量呢?...linux中使用一个原子变量,高16位记录系统所有的wakeup event总数,低16位记录是否有wakeup events在处理中。...那接着再用linux中的实现方法回答上述的问题: wakeup event framework是如何保存当前系统中所有的wakeup event?

2.3K21

深入理解Linux电源管理

计算机消耗的是电能,其来源是电池或者外电源。计算机内部有一个部件叫做电源管理芯片(PMIC),它接收外部的电能,然后转化为不同电压的电流,向系统的各个硬件供电。...但是当硬件运行起来之后,软件就可以对硬件的电源状态进行管理了。电源管理的内容包括电源状态管理和省电管理。电源状态管理是对整个系统的供电状态进行管理,内容包括睡眠、休眠、关机、重启等操作。...系统无论睡眠还是休眠,都可以被唤醒。对于睡眠来说很多外设都可以唤醒整个系统,比如键盘。对于休眠来说,就只有电源按钮能唤醒系统了。...下面我们画个图总结一下电源管理: 二、睡眠与休眠 睡眠和休眠的整体过程是相似的,都是暂停系统的运行、保存系统信息、关闭全部或大部分硬件的供电,当被唤醒时的过程正好相反,先恢复供电,然后恢复系统的运行...对于休眠来说整个系统是要断电的,所以要把很多系统关键信息都保存到swap中。然后系统就可以断电进入睡眠或者休眠状态了。对于睡眠来说有很多外设都可以唤醒系统,对于休眠来说只有电源键能唤醒系统

5.6K50

Linux电源管理-wakeup events framework

Linux系统中的电源管理一般是冷睡眠,而Android系统却将linux系统中的睡眠作为通常待机使用,显然Linux中的电源管理不符合Android系统。...产生,而此时系统无法从suspend过程中唤醒。...所以Linux在2.6.36中引入了wakeup events framework机制,用来解决suspend和wakeup events之间的同步问题。...在linux系统中,只有具有唤醒系统的设备才叫做“wakeup source”。 既然只有设备才能唤醒系统,那设备结构体struce device中就应该有某种标志代表此设备是否具有唤醒的能力。...Sys接口 为了方便查看系统的wakeup sources,linux系统在/sys/kernel/debug下创建了一个"wakeup_sources"文件,此文件记录了系统的唤醒源的详细信息。

3.4K32

Linux 电源管理及实例分析

1、Linux 电源管理的组成 电源管理(Power Management)在 Linux Kernel 中,是一个比较庞大的子系统,涉及到供电(Power Supply)、充电(Charger)、时钟...注3:Runtime PM 是 Linux Kernel 亲生的运行时电源管理机制,Wakelock 是由 Android 提出的机制。这两种机制的目的是一样的,因此只需要支持一种即可。...通过 QOS 参数,可以分析、改善系统的性能 2、电源管理源码目录 kernel/power/ drivers/power/ drivers/base/power/ drivers/cpuidle/ drivers...研究了一下 Linux 电源管理子系统,发现 Qos 有接口可以使用:在某一段时间内拉 Qos,可以让 CPU 在这段时间不进入 idle,使用完毕再去掉 Qos,让 CPU 可以进入 idle,这样满足了性能需求...2、i2c 传输慢,其中一种情况是 i2c 传输完毕返回时,CPU0 进入 idle,导致 i2c 中断打不进来,详情参考我的文章(背景:设置 i2c 中断无法唤醒系统): 手把手教你使用 ftrace

4K21

Linux电源管理(9)_wakelocks【转】

前言 wakelocks最初出现在Android为linux kernel打的一个补丁集上,该补丁集实现了一个名称为“wakelocks”的系统调用,该系统调用允许调用者阻止系统进入低功耗模式(如idle...同时,该补丁集更改了Linux kernel原生的电源管理执行过程(kernel/power/main.c中的state_show和state_store),转而执行自定义的state_show、state_store...当系统中所有的wakelock都注销后,系统可以自动进入低功耗状态。...以阻止睡眠、注销wakelock以允许睡眠:已经由“Linux电源管理(7)_Wakeup events framework”所描述的wakeup source取代。...注1:上面有关wakeup source的操作接口,可参考“Linux电源管理(7)_Wakeup events framework”。

1.7K10
领券