🐧 休眠唤醒·深度剖析
30章
⚡ 友好 · 专业内核
01
Linux电源管理全景
从ACPI到设备树,电源管理框架概览
↗
02
Suspend-to-RAM (STR) 核心流程
内核态冻结进程、设备暂停、CPU下线
↗
03
Suspend-to-Idle (S2Idle) 详解
现代x86平台的轻量级休眠
↗
04
Hibernate (Suspend-to-Disk) 原理
镜像创建、压缩、写入交换分区
↗
05
PM核心数据结构
struct dev_pm_ops, pm_message_t, suspend_state_t
↗
06
设备驱动休眠回调
suspend()/resume() 编写规范与常见陷阱
↗
07
系统唤醒源
GPIO唤醒、RTC唤醒、USB唤醒、网络唤醒(WOL)
↗
08
中断控制器在休眠中的作用
IRQ Chip的suspend/resume
↗
09
时钟与定时器管理
suspend期间如何关闭/恢复系统时钟
↗
10
CPU热插拔与休眠
cpu_down/cpu_up 在休眠中的角色
↗
11
DMA与休眠
DMA引擎的暂停与恢复,避免数据丢失
↗
12
PCIe设备电源管理
D0/D3hot/D3cold状态转换
↗
13
Runtime PM (运行时电源管理)
autosuspend, get/put 接口
↗
14
Wakelock机制
Android对Linux休眠的扩展,阻止深度休眠
↗
15
QoS框架
PM QoS请求如何影响C-State和P-State
↗
16
Cpuidle子系统
C-State的进入/退出,以及和休眠的关系
↗
17
Devfreq与动态调压
休眠前后的频率/电压切换
↗
18
休眠中的内存管理
内存压缩、回收、以及不可休眠页
↗
19
文件系统与块设备
休眠前刷脏页,恢复后检查文件系统一致性
↗
20
网络子系统休眠
net_dev suspend/resume,以及WoWLAN
↗
21
休眠日志分析
dmesg中PM相关的关键打印,如何定位休眠失败
↗
22
休眠性能优化
测量suspend/resume延迟,找出瓶颈
↗
23
嵌入式设备休眠
基于设备树的电源域、regulator控制
↗
24
ACPI休眠
S3/S4状态在BIOS与内核之间的交互
↗
25
休眠安全
加密交换分区、TPM与休眠镜像的完整性校验
↗
26
休眠测试框架
pm_test, swsusp, 以及自动化测试脚本
↗
27
常见休眠问题排查
无法唤醒、唤醒后设备异常、内存泄漏
↗
28
休眠与容器
cgroup freezer 在容器迁移中的应用
↗
29
未来趋势
Intel S0ix, Microsoft Modern Standby, Linux适配
↗
30
实战:嵌入式板卡移植
为一个嵌入式板卡移植并调试休眠唤醒功能
↗