after I finally got my hands on my new ThinkPad A485, I decided to install my usual Gentoo setup (i3wm etc.) on it. However, before that I did test how good the general Linux support is on the machine with Fedora 29 and I was amazed at how everything just seemed to work (including the issue I am about to describe). But since Fedora is not my cup of tea anymore, I need to make Gentoo work
Now the issue I have, where I hope someone might have experience in or have an idea what it might be, is powering off after initiating hibernate. When I activate hibernation through the kernel (under the hood it’s as simple as echo disk > /sys/power/state) the screen turns off and the system seems to turn off the hardware as well, but not actually power off. I can still hear the fan spin and the power LED in the power button is still on too.
In order to get the machine to turn off completely, I need to keep the power button pressed until the power LED goes out. When I turn the system on again, everything seems normal and the kernel is loading the hibernation image properly and the system is fully awake again.
I’m not sure what is causing this and I found a few sources that suggest adding kernel parameters such as acpi=force or apm=power_off to GRUB’s CMDLINE_LINUX, but neither work after grub-mkconfig and a reboot.
Does anyone have an idea, what the issue might be?
on openrc you can use /usr/sbin/hibernate and let the system do its job.
same with systemctl hibernate on systemd.
did you compare drivers/modules with fedora (not a live image)?
maybe check your power management setting with in your kernel.
I assume the logs (like dmesg) or journalctl could help to narrow down the problem.
do you use consolekit ?
wheel group member ?
did you add rights with visudo ?
Thank You for the answer.
I have two notebooks A275 and A475.
A475 has both ARCH and corporate Win 7.
A275 Win 10 and ARCH also.
Today I played with both and Windows systems cannot do hibernate.
What I did… it was on both PCs BIOS upgrade.
I came to my colleague today with A275 and asked to do hibernate, it was working with corporate Win 7. So… I’ve checked the BIOS and it is 1.12.
On my 475 - 1.15, 275 - 1.16
I am trying to contact Lenovo support for information of downgrade BIOS…
Im sorry to say it, but Lenovo dont support downgrading their BIOS’. Not officially anyway, but the BIOS itself will reject any lower versions being overwritten. As its business, I dont think youll be allowed to to flash a earlier bios as a later one either, youll know about this though.
I was told about BIOS Flash Back… but we’ve live chat tried to find it, no success on A475/275. I could assume, if in such a case we have an issue, I suppose a buggy ACPI S4, this somehow must be solved?..
It is not working on Windows.
I don’t have that binary. I ran equery belongs hibernate and I didn’t get any hits. Where is that file from?
I honestly didn’t use Fedora long enough to say for sure that it’s working properly 100% of the time, but I will check what Fedora loads. Why do you think the Live-Image wouldn’t work?
Do you know of any resources about what kernel config I would need for it to work correctly? I searched for “suspend” and “hibernate” and everything I saw that seemed to be potentially related, was enabled.
I try to avoid both consolekit and policykit.
I did “whitelist” the script I wrote that wraps the echo to /sys/power/state, or what exactly do you mean?
Anyways, I think that the problem is not really in userspace. I feel like the issue is probably how the kernel tries to turn off the hardware once it reached hibernation state, but I have no idea what the issue could be or how I could further debug this.
The logs don’t really say anything, they just seem to stop at one point. Maybe the issue is past the point where the sleep image is written, so any logs would be lost when rebooting the machine.
Okay, so that script is a bit longer than others I’ve found. It took a bit of tinkering before it worked with that command (following the Gentoo Wiki helped). The option that made it work was SLEEP_MODULE="kernel", which makes me think that they are just doing the same like what echoing to /sys did. Well, I will give it a try now and see if that script works long-term, because my previous solution only worked sometimes.
I only use genkernel for my initramfs, the rest is custom. What actually gets loaded will be determined by udev, but I don’t think it’s a problem with missing modules. I mean all resources I read so far, said you only need the two kernel settings (for suspend and hibernate), which I have both set.
I check my kernel config file (kernel 5.0.0) and this is what I got:
$ cat /usr/src/linux/.config | grep -E "HIBERNATION|ACPI_AC|THINKPAD"
# CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
# CONFIG_THINKPAD_ACPI_DEBUG is not set
# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
Looks like everything that could be useful is enabled.
I am starting to feel like this is really more a problem of the BIOS. Maybe I was just super lucky on Fedora, I mean after all, I only ran it for a few weeks…
PS: I noticed that CONFIG_THINKPAD_ACPI was configured as a module. I can’t see why it would be a problem if it’s not built in, but since I use full disk encryption, I decided to have it built-in now. I mean I need to load it anyways, so why not? Maybe it fixes the issue, maybe it makes no difference. I will see soon enough.
That would be highly surprising to me, because hibernate is really not a very difficult thing. You simply store the whole memory to disk (which can be done by pretty much every setup) and then your turn off the machine (which should happen automatically, not manually like in my case).