在这个篇章里,我打算换个角度来探讨。首先,让我们定义一下我心中的笔记本电脑:它是一种随身设备,无论走到哪里都能轻松使用,工作时可以携带,合上盖子就能进入休眠状态,稍后继续之前的任务。
然而,如今,实现这个看似简单的目标变得越来越困难。如果你对此表示怀疑,那就请继续阅读我的故事。
我的经历与观点
在我的职业生涯中,我用过各种服务器、台式机和笔记本。大学时期,我选择全平台使用Linux,那时的联想Thinkpad E470因其出色的Linux支持让我受益。但这种选择也影响了我后续对笔记本的选择,因为特定硬件组件的Linux支持当时(现在也是)不尽如人意,比如网络卡和集成显卡(如Nvidia Optimus)。
现在的痛点包括复杂的驱动需求,比如为支持Windows Hello认证的红外摄像头和麦克风阵列。尽管如此,我一直青睐联想的ThinkPad,如X240或X380,因为它们在Linux上的表现一直不错。我只做了一些小调整,比如更换无线网卡为经济型Intel型号。
过去的笔记本都是可靠的移动Linux机器,无论在哪里都能正常运行。我的第一台工作笔记本——戴尔XPS 15 9570,延续了这一传统,尽管它的生物识别器需要非官方驱动,但整体体验还算顺畅。
随着新冠疫情带来的远程工作和更多在家办公,我更依赖于笔记本的便携性和无痛体验。目前,我使用的另一台XPS 15 9570依然支持S3休眠模式,这从下面的命令输出可以看出:
$ cat /sys/power/mem_sleep
s2idle [deep]
睡眠问题曾是我遇到的另一个挑战,直到我换到新的工作笔记本——戴尔XPS 15 9500。我要澄清的是,这些问题并非仅限于Linux,我的戴尔XPS 17 9720也同样存在。
现状与原因
表面上看,问题在于微软推动了从S3休眠模式向“现代待机”(S0ix)的转变。但这背后隐藏着更深的原因。我们需要解答两个问题:
- 现代待机是什么?它是如何实现的?
- 如果现代待机导致待机功能失效,微软为什么要强制迁移?
技术细节
传统的休眠模式要求系统硬件和软件协同工作,操作系统、硬件(如CPU)以及BIOS/UEFI都需要支持。根据统一可扩展固件接口(UEFI)的标准,常规的休眠被称为S3。在S3状态下,除了RAM和CPU缓存,所有系统组件都会关闭,平衡了能耗