解决方案参考 https://dev.to/epassaro/fix-suspend-issues-on-dell-7405-2-in-1-3l1b

与原文不同的是,他的设备是 Dell 7405 2-in-1 而我的是 Thinkbook 14P, 所以 DSDT 修改略有不同。

反编译出 dsl 之后,找到如下位置:

1
2
3
4
5
6
7
    Name (NOS3, Package (0x04)
    {
        0x03, 
        0x03, 
        0x00, 
        0x00
    })

替换为

1
2
3
4
5
6
7
    Name (_S3, Package (0x04)
    {
        0x03, 
        0x03, 
        0x00, 
        0x00
    })

同时将 DefinitionBlock ("", "DSDT", 1, "LENOVO", "AMD", 0x00001000) 替换为 DefinitionBlock ("", "DSDT", 1, "LENOVO", "AMD", 0x00001001),这里是加了个版本号,让内核可以识别到。