⚡ Linux电源管理
入门→实战
📘 30章 完整版
🔋 嵌入式
🧩 内核/驱动
01
电源管理概述
为什么需要PM?功耗组成 · 基本目标与挑战
02
Linux电源管理框架全景
子系统架构 · PM Core · Runtime PM · Suspend/Resume · CPUFreq/Idle · Devfreq
03
内核配置与编译
PM_DEBUG · PM_SLEEP · CPU_FREQ · 编译部署
04
系统挂起与恢复
Suspend-to-RAM · Suspend-to-Idle · Hibernate · /sys/power/state
05
设备驱动中的电源管理回调
struct dev_pm_ops · prepare/suspend/resume/complete · 驱动实例
06
运行时电源管理 (Runtime PM)
pm_runtime_get/put · 自动挂起/唤醒 · 驱动案例
07
CPU频率调节 (CPUFreq)
Governor · performance/powersave/ondemand/schedutil · cpufrequtils
08
CPU空闲管理 (CPUIdle)
C-States/P-States · Governor menu/ladder/teo · 延迟与功耗
09
设备频率与电压调节 (Devfreq)
Devfreq框架 · simple_ondemand · DDR/GPU调频实例
10
电源管理IC (PMIC) 驱动
Regulator框架 · 编写Regulator驱动
11
电池与充电管理
Fuel Gauge · Charger驱动 · sysfs接口
12
热量管理 (Thermal)
Thermal框架 · Cooling Device · step_wise/power_allocator
13
功耗测量与调试工具
powertop · perf · turbostat · lm-sensors · I2C测量
14
内核PM调试接口
/sys/power/ · /sys/devices/.../power/ · debugfs · ftrace
15
设备树中的电源管理
电源域 · Regulator · Thermal · CPU Freq/Idle描述
16
电源域 (Power Domain) 管理
Generic PM Domain · 域门控与唤醒
17
唤醒源与中断管理
Wake-up Source · IRQ唤醒 · NoIRQ suspend · GPIO唤醒
18
音频子系统的电源管理
ASoC · DAPM · Pop/Click噪声抑制
19
显示子系统的电源管理
DRM/KMS · Panel/Backlight · DPMS状态机
20
网络设备的电源管理
WoWLAN · PHY低功耗 · NIC Runtime PM · EEE
21
存储设备的电源管理
MMC/SDIO Runtime PM · NVMe电源状态 · 写回策略
22
USB电源管理
USB Suspend/Resume · Autosuspend · Wakeup · OTG
23
用户空间电源管理策略
Android wakelock · D-Bus · systemd/logind
24
RTOS与电源管理
PREEMPT_RT · 延迟与功耗平衡 · 案例
25
安全与电源管理
安全启动 · TPM · 休眠安全 · 加密密钥
26
电源管理测试与验证
pm_test · 自动化脚本 · 压力测试
27
常见问题与调试技巧
无法唤醒 · 功耗过高 · 驱动回调不执行
28
实战项目一:ARM板级功耗优化
默认配置 → 优化后功耗降低30%
29
实战项目二:自定义外设Runtime PM驱动
I2C传感器 Runtime PM 实例
30
实战项目三:低功耗IoT节点
MCU+Linux · 电池供电 · 待机<1mW