<i id='m79m0'><div id='m79m0'><ins id='m79m0'></ins></div></i>
    <acronym id='m79m0'><em id='m79m0'></em><td id='m79m0'><div id='m79m0'></div></td></acronym><address id='m79m0'><big id='m79m0'><big id='m79m0'></big><legend id='m79m0'></legend></big></address>

    <code id='m79m0'><strong id='m79m0'></strong></code>
  1. <fieldset id='m79m0'></fieldset>

    <ins id='m79m0'></ins>

    <i id='m79m0'></i>
    <dl id='m79m0'></dl>
    1. <tr id='m79m0'><strong id='m79m0'></strong><small id='m79m0'></small><button id='m79m0'></button><li id='m79m0'><noscript id='m79m0'><big id='m79m0'></big><dt id='m79m0'></dt></noscript></li></tr><ol id='m79m0'><table id='m79m0'><blockquote id='m79m0'><tbody id='m79m0'></tbody></blockquote></table></ol><u id='m79m0'></u><kbd id='m79m0'><kbd id='m79m0'></kbd></kbd>
    2. <span id='m79m0'></span>

          简单了解Linux APM电源管理知识

          • 时间:
          • 浏览:13
          • 来源:124软件资讯网

            在官方公布的内核中Linux APM是较为成熟的电源治理方式  ,可以完成在Windows下ACPI所能完成的大部门功效  。由于官方内核中ACPI的功效比力有限  ,现在还处于开发版状态  。

            以是当前的大多数distribution  ,如红帽子默认就使用了apm作为电源治理方式  。可是值得注重的是linux中的ACPI现实上是由一个单独的项目小组模块举行维护的  ,当前内核ACPI的版本现实上已经远远落伍于最新的版本  。由于linux稳固版中对任何新特征的加入都很是审慎小心  ,以是我们也许只能等到2.6.x版本的linux降生后才气看到ACPI的稳固全功效版了  。不外我们也可以自己对内核打最新的ACPI补丁来获得这些功效  。

            下面临电源治理的先容以Linux APM为主  。

            用户态Daemon
            为了让linux内核中的电源治理功效够更好的被使用  ,我们还需要用户态daemon法式的配合  。针对Linux APM和ACPI  ,划分有apmd和acpid两个差别软件 。他们实现的功效比力类似  ,都是允许用户预先界说某些计谋  ,然后跟踪电源状态 ,执行特定的操作  。在apmd软件包中另有一个工具Linux APM  ,用户可以用它使机械自动进入standby和suspend状态 ,还可以查询bios的apm版本号 。在使用acpi时直接对proc文件系统举行操作即可完成同样的功效 。

            KernelSpace
            APMdriver(包罗提供应用户空间使用apm_bios_fopsSystemCall,主要有apm_read,apm_poll,apm_ioctl,apm_open,apm_release)  。
            关于电池电量检测  ,主要要用到MCU平台的ADC采样(每隔几多时间来读取ADC)  ,以及DC供电  ,电源供电的检测
            关于体眠和恢复  ,这个主要是ioctl要完成的事情  ,例如用户空间用Linux APM-s举行睡眠操作  ,会挪用平台相关的睡眠函数  ,恢复也是类似的  。这内里要注重  ,APM有一套假睡眠和恢复 ,需要实现真正平台相关的睡眠和恢复 。

            详细可以参考我的博客:2410的Linux APM电源治理剖析  。
            UserSpace
            GTK/Qt/C---->openAPM_PROC--->SystemCall(read()mainly)--->KernelVFS--->apm_driver-->apm_read
            读取syslog来获得电池电量  ,供电检测相关的信息