I've been hacking on an ancient #thinkpad r50e. Despite best efforts, I can't get the thing to wake up properly from suspend or hibernate.
Goes to bed as expected, and won't wake up.
Would love some help if you have any ideas.
Debian minimal install with i3wm. Acpi appears functional, acpi-support configured correctly by every guide I could find.
I'm stumped at this point, and not closing the lid without a plan. :)
According to https://www.linuxcompatible.org/compatdb/details/ibm_thinkpad_r50e_linux.html it used to work.
1. Make sure the BIOS/CMOS settings aren't bad. Since it used to work for people without effort, it points to the default settings being safe. Sometimes "better" settings are buggy, so use defaults. (*)
2. Possible issues due to changes in kernel configuration settings. You should be able to easily try changing the prebuilt kernel you're using. You might need to build your own, though.
(*) HDD settings should be preserved.
And when I say, "HDD settings should be preserved" there are BIOS/CMOS settings that change how the OS sees your hard disk and if things are misaligned the system won't boot. This isn't an issue if you're going to reinstall the system, but should not be considered if you want to preserve things.
Have you checked the logs after the suspend? Are you sure it is successfully suspending? It would be interesting if it never _quite_ completed the suspend operation, and then couldn't resume.
According to https://askubuntu.com/questions/279584/suspend-resume-failure sometimes WiFi or graphics cards can mess with suspend/resume. Since it is a laptop, I don't expect a graphics issue, but you might try shutting down the WiFi before you try suspending.
It appears it is suspending but the screen isn't turning back on during resume.
Oh? That's something that should be fixable. Let me see if I can find that...
There are a few things to do just before suspending and right after it, [...] It does the following:
* It switches to console one (prevents problems with after resume).
That sounds like your issue might be long-standing. Does it go away if you do Control-Alt-F1 before you close the lid?
Sounds like it was never fixed on this older model. It's mostly a learning toy, so if I can neuter the lid switch I may just try that
If neutering the lid switch is acceptable, screw looking for a software solution and check the CMOS/BIOS. You may be able to neuter it there.
I'll have a look at next opportunity. Thanks for the help!
You're welcome. The references to "Suspend2" in the old docs are for software that became TuxOnIce. There's a "hibernate" script, and it looks like the configuration is /etc/hibernate/hibernate.conf
Hopefully you can disable it in the BIOS, but if you can't, maybe tweaking that configuration will help?
I can't find the docs for TuxOnIce online. I've seen references for two different defunct websites.
I tried installing that. It hibernated, tried to recover from it and died on the way back up.
I found that last night and thought the same thing. Fortunately more recent vintage thinkpads behave better.
There's pieces which could include the solution to your problem there.
It mentions "xset dpms force off", but this means "xset dpms force on" on resume may bring the display to life. ...
The issue with the TuxOnIce/hibernate script and resuming might be the "ACPI S4 hardware signature mismatch" issue ...
The fact that there's all these references to 10+ year old versions of Linux doesn't exactly help, either. 2.4 was 2001. 2.6 was 2003.
I saw that mismatch error when hibernate froze the system. Seems to be smart enough to simply recreate the file it needs
I also wonder if the "Fixing corrupted video on resume" section might include pieces you need. But the fact that it confirms /etc/systemd/logind.conf as being how to disable the lid switch should be good enough.
Ooooh. Disabling kms got the laptop to suspend to ram correctly from the command line, but the lid switch is clearly calling the wrong script. I think you've almost helped me crack it!
What about /etc/systemd/logind.conf as the way to disable the switch? Does that work?
A full fix would be best, but this will answer the question: Is the systemd logind configuration bypassed right now?
Right now we don't really know what's listening to the lid switch.
HandleLidSwitch in /etc/systems/logind.conf set to ignore disables suspend as intended. So question of the moment is how do I get the suspend directive it calls to call whichever mojo acpi -s calls which seems to be working, as opposed to whatever default which doesn't seem to want to wake up correctly.
The man page lists a couple script locations that get processed. There are two possibilities:
1. One of the scripts fail on suspend
2. One of the scripts fail on resume
But the whole, "WTF is being run that is killing it" may be solved. (At least in a general sense, at least.)
Clearly failing on resume, both in hibernate and suspend.
Now, if the resume process expects a state that isn't being set -- due to acpitool instead of the expected systemd scripts -- we may be able to fix resume by fixing suspend.
Mastodon.ART — Your friendly creative home on the Fediverse! Interact with friends and discover new ones, all on a platform that is community-owned and ad-free. Admin: @Curator. Moderators: @EmergencyBattle, @ScribbleAddict, @TapiocaPearl, @Otherbuttons, @katwylder