因为thinkbook 14p BIOS不支持开启 S3,所以这里只能查看其它方法。通过谷歌搜索后,发现可以通过修改DSDT实现开启S3。
步骤
-
提取ACPI 表格二进制到 dsdt.dat
-
反编译ACPI表格到.dsl文件 $ iasl -d dsdt.dat
-
修改dsdt.dsl文件,开启S3 参考这里修改 -
编译修改后的dsl文件 $ iasl -tc dsdt.dsl
-
使用修改后的dsdt 有两种方式:1. 使用CPIO 压缩文件 2. 编译到内核 这里我使用的是CPIO压缩文件的方式
-
创建文件夹 $ mkdir -p kernel/firmware/acpi
-
拷贝dsdt.aml 到 $ cp dsdt.aml kernel/firmware/acpi
-
生成cpio find kernel | cpio -H newc --create > acpi_s3_override
-
将cpio文件拷贝到/boot目录 # cp acpi_s3_override /boot
-
设置默认睡眠类型为s3(deep) 打开/etc/default/grub ,然后添加mem_sleep_default=deep 到GRUB_CMDLINE_LINUX_DEFAULT 中,接着运行sudo update-grub 例如: GRUB_CMDLINE_LINUX_DEFAULT="apparmor=1 security=apparmor mem_sleep_default=deep udev.log_priority=3 acpi_backlight=native"
-
设置grub使用acpi_s3_override 打开/etc/default/grub ,然后添加acpi_s3_override 到GRUB_EARLY_INITRD_LINUX_CUSTOM 中,接着运行sudo update-grub 例如: GRUB_EARLY_INITRD_LINUX_CUSTOM="acpi_s3_override"
验证
$ cat /sys/power/mem_sleep
s2idle [deep]
参考
ARCH WIKI DSDT
yoga-slim7-ubuntu
Thinkbook 14p Gen2 ACH Ubuntu/Linux睡眠后掉硬盘「已解决」
|