linux - 如何在基于 ARM 的嵌入式 Linux 系统上进行省电?

标签 linux embedded-linux power-management power-saving

我计划开发一个漂亮的小应用程序,它将在基于 arm 的嵌入式 Linux 平台上运行;但是,由于该平台将由电池供电,我正在搜索有关如何处理节电的相关信息。

获得合适的电池使用时间很重要。

我认为 Linux 内核对此提供了一些支持,但我找不到关于此主题的任何文档。

  • 欢迎就如何设计我的程序和系统提出任何意见。

  • 也欢迎任何有关 Linux 内核如何尝试解决此类问题的意见。

其他问题:

  • 用户空间的程序需要做多少?

  • 需要修改内核吗?

  • 哪些内核系统调用或 API 值得了解?


更新:

似乎参与“Free Electrons”网站的人们就此主题制作了一些不错的演示文稿。

但也许其他人有关于这个主题的更多信息?


更新:

Adam Shiemke 去看看 MeeGo 项目的想法似乎是迄今为止最好的建议。

它可能是目前最好的电池供电的嵌入式 Linux 项目。

诺基亚通常擅长这类事情。


更新:

必须小心 Android,因为它在底部有一个“修改过的”Linux 内核,而 Google 的人们所做的一些事情并不使用基线/普通 Linux 内核。我认为他们的一些电源管理想法可能难以重用于其他项目。

最佳答案

我实际上并没有这样做,但我对这两者(Linux 和嵌入式电源管理)有不同的体验。在考虑电源管理时,会想到两个主要的 Linux 发行版,Android 和 MeeGo。 MeeGo 使用(据我所知)一个未修改的 2.6 内核,还有一些附加功能。我没能找到很多关于他们的电源管理策略的确切信息,尽管我怀疑随着产品接近成熟,在不久的将来会有更多关于它的信息出现。

但是,Android 上提供的信息要多得多。他们运行经过相当大修改的 2.6 内核。您可以很好地了解 http://elinux.org/Android_Power_Management 中实现的不同策略。 (以及内核戏剧)。其他一些链接:

https://groups.google.com/group/android-kernel/browse_thread/thread/ee356c298276ad00/472613d15af746ea?lnk=raot&pli=1

http://www.ok-labs.com/blog/entry/context-switching-in-context/

我相信您可以找到更多这种性质的链接。由于这两个项目都是开源的,您可以获取内核代码,并可能从真正知道他们在表单和组中谈论的内容的人那里获得更多信息。

在驱动程序级别,您需要确保您的驱动程序能够正确处理挂起和关闭未使用的设备。大多数针对移动市场的设备都提供非常细粒度的支持,以关闭各个组件并调整时钟设置(请记住,功率与时钟成正比^2)。

希望这对您有所帮助。

关于linux - 如何在基于 ARM 的嵌入式 Linux 系统上进行省电?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3092498/

相关文章:

linux - 尝试执行 elf 文件时出现非法指令(核心已转储)

linux - 我自己的 linux Chorded 键盘驱动程序和我的嵌入式应用程序的接口(interface)

iphone - 使用 cocos2d 应用程序降低功耗的可能性

mysql - 如何从文本文件中删除特殊字符

linux - 如何从 Linux Jenkins master 重置内部版本号?

embedded-linux - 从命令行通过/dev/mem 读取特定的内存地址

linux - 启动时 Linux 内核中内置模块的状态

java - Wakelock 并不总是让我的应用程序保持 Activity 状态

linux - 与 CPU 频率相关的电压水平

linux - Linux 内核是如何测试的?