Should look like this:
$ cat /sys/power/mem_sleep
s2idle [deep]
Probably you forgot to add this (step 10) to your grub.cfg:
GRUB_CMDLINE_LINUX_DEFAULT="quiet mem_sleep_default=deep"
Oh god the brackets, didn't notice them. Yeah step 10 was it, thanks!! I also had to run "sudo update-grub" and then redo step 9 because step 10 overwrote /boot/grub/grub.cfg so maybe the guide could be improved a bit there. Anyway I'm a happy camper now finally!
]]>Any tips when I've successfully followed the 11-step guide at Delta Xi and yet my 3rd Gen X1 Yoga is using 10% battery in sleep mode per hour?
output of:
dmesg | grep ACPI | grep supports cat /sys/power/mem_sleep [ 0.155457] ACPI: (supports S0 S3 S4 S5) [s2idle] deep
I've also turned off secure boot in the BIOS as well as Wake on LAN and this USB charge-when-sleep-thing.
Looks like you're not using S3 when suspending. Should look like this:
$ cat /sys/power/mem_sleep
s2idle [deep]
Probably you forgot to add this (step 10) to your grub.cfg:
GRUB_CMDLINE_LINUX_DEFAULT="quiet mem_sleep_default=deep"
Also S3 sleep works on the X1 tablet gen3. Used the patch provided by mr-sour (https://gist.github.com/mr-sour/e6e4f46 … edd5181c09), however, added the changes manually.
]]>output of:
dmesg | grep ACPI | grep supports
cat /sys/power/mem_sleep
[ 0.155457] ACPI: (supports S0 S3 S4 S5)
[s2idle] deep
I've also turned off secure boot in the BIOS as well as Wake on LAN and this USB charge-when-sleep-thing.
]]>Looks like Lenovo put a couple of updates. 1.28 last night or the night before and 1.30 today. Anyone try it yet? I'm flashing 1.30 now.
Yes, I'm on 1.30 right now. They have included an option so toggle S3 instead of Si03 for Linux users. How very nice of them.
I can confirm it works, /sys/power/mem_sleep shows "s2idle [deep]" with the acpi DSDT patch not applied.
Here is the official changelog for 1.28 and 1.30:
1.30
UEFI: 1.30 / ECP: 1.08
- (New) Support Optimized Sleep State for Linux in ThinkPad Setup - Config - Power.
(Note) "Linux" option is optimized for Linux OS, Windows user must select
"Windows 10" option.
1.28
UEFI: 1.28 / ECP: 1.08
- (Fix) Improve power control.
GRUB_EARLY_INITRD_LINUX_CUSTOM=acpi_override
GRUB_CMDLINE_LINUX_DEFAULT="quiet mem_sleep_default=deep"
which after grub-mkconfig gives you lines in:
/boot/grub/grub.cfg
initrd /boot/intel-ucode.img /boot/acpi_override /boot/initramfs-linux.img
It would probably be a great idea to combine the patch with a sed script that removes the ONE lines, since those are the lines causing patch to puke. Now, I don't know how the DSDT tables are constructed -- does the bios recreate that table everytime a bios value gets changed, or is it a standard machine language bit that can be overwritten, but checks the BIOS values stored `somewhere'?
The practical question is, is this process required on every change to BIOS, or whenever the BIOS gets reflashed?
By the way, this also solves the problem of hybrid-suspend --- without this, hybrid-suspend goes straight to hibernate, maybe there would be a way to improve the systemd stub to work without it, not sure.
]]>I would assume they look like this, inside of my `/boot/loader/entries/arch.conf/`:
title Arch Linux
linux /vmlinuz-linux
initrd /acpi_override
initrd /intel-ucode.img
initrd /initramfs-linux.img
options cryptdevice=UUID=93c0a958-43f5-4e3a-94ed-007881c2a098:cryptlvm root=/dev/mapper/main_group-root mem_sleep_default=deep quiet rw
where step 9 translates to
initrd /acpi_override
in line 3, and step 10 translates to adding
mem_sleep_default=deep
right before the end of the last line.
]]>Thanks for the hard work, I was really frustrated as I have just bought the Yoga and it was annoying to discover that sleep does not work at all on Linux. Hopefully Lenovo fix this at some point.
]]>Those of you who have got S3 deep sleep working, did you do *any* fixes/changes/custom settings/whatnot for the touchpad & trackpad buttons?
Did you, or anyone else, manage to fix that?
I also got S3 to work, only issue I have now is that the touchpad and the buttons don't work after suspending.
I tried pretty much every fix I could find but none worked for me yet.
]]>axboe wrote:piehei wrote:Hmm. With this patch I get 64 errors and 334 warnings from running iasl -ve -tc dsdt.dsl. Most of the errors seem to be of type "Name already exists in scope".
I think you're using a version of iasl that's too old.
Edit: just checked, and I'm using:
ASL+ Optimizing Compiler/Disassembler version 20180313
that I downloaded and built myself, as the one that came with my distro was too old.
You are absolutely correct. Got the latest version and it mostly works on my machine.
1.
Memory regions @ 421 were different -> removing of "One"s had to be done manually.2.
The output of iasl -d produced this:13825 \_SB.SGOV (DerefOf (Arg0 [0x02]), (DerefOf (Arg0 [0x03]) ^
13826 0x01))with which iasl -ve -tc dsdt.dsl wasn't too happy and aborted in error. Fixing that by hand to
13825 \_SB.SGOV (DerefOf (Arg0 [0x02]), (DerefOf (Arg0 [0x03]) ^ 0x01))
was enough and compilation with iasl worked just fine.
The initial application may be a bit more tricky, the point of my version was to boil it down to the bare minimum. That makes the initial application easier, and subsequent ones should apply without rejects, making further BIOS updates trivial. Case in point, just upgraded to 1.25, and the acpi table image generation is now just fully automated for me and takes just a minute of time after booting with the new bios.
]]>