微软在Windows 11 22H2中引入了一种新的ACPI设备特定方法(DSM)"开启显示屏"通知,Linux 7.0内核将增加对此功能的支持,以解决某些笔记本电脑的异常行为。
在即将到来的Linux 6.20~7.0内核周期之前,Linux电源管理子系统的"Linux-next"Git分支已加入s2idle驱动程序对微软"开启显示屏"DSM的调用支持。微软文档将"开启显示屏/功能9"通知描述为:当系统意图开启显示屏时,在现代待机恢复期间发送的信号。
当前这一支持的重要性在于,部分笔记本电脑固件开始要求在恢复时调用此ACPI DSM方法以实现正确处理。促使该功能被加入Linux内核s2idle代码的直接原因,是2025年8月一份关于联想Yoga Slim笔记本电脑的故障报告:该设备在休眠/恢复循环后风扇完全停止工作,最终导致过热问题:
"从休眠恢复后,无论CPU温度或系统负载如何,笔记本电脑的散热风扇均不会重新激活。这导致常规任务中CPU温度可达95摄氏度,构成安全隐患。该问题100%可复现,且出现在多个内核版本中。仅通过完全重启才能恢复风扇功能。相同硬件在Windows系统下运行正常。"
经过数月排查仍未能确定该联想Yoga笔记本在Linux下出现此行为的原因,直到上月才发现问题根源在于"开启显示屏"ACPI方法未在Linux系统中被调用。
雅各布·里门施奈德在已提交的补丁中说明:
"根据微软文档,此功能向系统固件发出信号,表明操作系统将在退出现代待机时开启显示屏。这使得固件能够提前释放功率限制(PLx)。
关键之处在于,此补丁修复了联想Yoga Slim 7i Aura(15ILL9)上观察到的功能异常:系统风扇和键盘背光在休眠后无法恢复。调查显示该设备的嵌入式控制器会在睡眠期间关闭这些组件,但需要功能9通知才能重新唤醒它们。
本补丁定义了新功能索引(ACPI_MS_TURN_ON_DISPLAY)并在acpi_s2idle_restore_early_lps0()中调用。执行顺序已更新以匹配'意图'信号的逻辑:
1. LPS0退出(功能6) 2. 开启显示屏意图(功能9) 3. 现代待机退出(功能8) 4. 屏幕开启(功能4)
在现代待机退出前调用功能9,可确保固件在软件完全退出睡眠状态前有时间恢复电源轨和相关功能(如风扇)。"
该支持由此解决了联想Yoga笔记本的风扇/散热问题。鉴于目前至少已有一份笔记本电脑故障报告呈现此行为,很可能其他型号设备在当前Linux内核下也会遇到类似问题,或存在围绕功能9_DSM唤醒机制的其他异常行为。
随着该DSM功能三年前在Windows 11 22H2中引入,未来硬件/固件对此支持的需求也可能日益增强。