当我决定安装 Linux 时,我受到电池寿命问题的困扰,最烦人的是,每次重启我的系统都无法检测到我的 SSD。
经过大量研究,我找到了我的一个问题的根源。
在内核版本 4.11 中,他们添加了一个可以节省电量的 NVMe 控制器。在内核版本 4.11.0rc7 之后,他们添加了此补丁:
static const struct nvme_core_quirk_entry core_quirks[] = {
/*
* Seen on a Samsung "SM951 NVMe SAMSUNG 256GB": using APST causes
* the controller to go out to lunch. It dies when the watchdog
* timer reads CSTS and gets 0xffffffff.
*/
{
.vid = 0x144d,
.fr = "BXW75D0Q",
.quirks = NVME_QUIRK_NO_APST,
},
显然,这会导致我的 SSD 在重启时出现问题,从而无法检测到它。我只能使用内核版本 4.11.0rc7 以下版本来避免重启问题,并且内核中还有电源更改补丁。
现在,我唯一的问题是:是否可以在较新的内核中禁用此功能?我真的不知道该怎么做。我希望它就像添加启动参数一样简单。
答案1
你可能已经修复了这个问题,但我想在这里发布原始线程。
结论:尝试使用内核参数启动nvme_core.force_apst=1