I'm trying to get my new Arch installation up and running on a Thinkpad X220. I installed pm-utils, and pm-is-supported says that I'm able to pm-suspend, pm-hibernate, and pm-suspend-hybrid. (I've also seen a lot of threads on problems with suspend on old kernel versions, but I'm on 3.0.)
I tried pm-suspend, it suspended, I woke it with Fn, and all was well.
I tried pm-hibernate, it pretended to hibernate; but, when I pressed the Power button to wake it, instead it began the boot sequence afresh. (I have seen some posts describing similar behaviour before, but I'm not sure what it's supposed to do, so I can't say if I'm duplicating anybody else's complaint.) /var/log/pm-suspend.log looked fine, but /var/log/pm-hibernate complained "PM: Hibernation image not present or could not be loaded."
Per https://wiki.archlinux.org/index.php/Pm … esume_Hook, I added the resume hook to HOOKS in /etc/mkinitcpio.conf, which now reads HOOKS="base udev autodetect pata scsi sata resume filesystems usb", and ran "mkinitcpio -p linux". I re-booted, tried to pm-hibernate, and got a flashing cursor on an otherwise blank screen, with the 'moon' (sleep indicator light) flashing indefinitely. The only thing to do in this state is to hold down the power button until it powers off. This is different from before; before, pm-hibernate would do the hibernate sequence properly, just not wake up properly.
Also, pm-suspend doesn't work any more; the 'moon' flashes forever, the screen doesn't blank, and it won't respond to any keypresses (including Fn for wake). Again, I have to hold down the power button until it powers off. Note that pm-suspend worked fine before adding the 'resume' hook.
Even a direct echo -n 'mem' > /sys/power/state doesn't work; I get a blinking cursor on a blank screen (and no indication of activity from the 'moon').
Well, I'd rather be able to suspend, but not hibernate, than this, so I tried removing the 'resume' hook and mkinitcpio'ing again; but I can't even get back to the old partially functional behaviour. What can I do?
EDIT: rochus suggested 'rmmod'ing iwlagn first, which works perfectly.
Last edited by Jade NB (2011-08-24 03:22:16)
I guess the problem could be iwlagn, as long as this one is loaded on your x220. I have the exact same suspend problem on an x121e, and unloading the module (rmmod iwlagn) before calling pm-suspend solved it. If this indeed does solve your problem, you're best of with creating a file under /etc/pm/config.d, e.g. /etc/pm/config.d/01iwlagn with the following content:
Last edited by rochus (2011-08-23 19:59:45)
Thanks! That works perfectly. I saw some threads from Ubuntu installs that suggested xhci_hcd might be the problem, but unloading that didn't solve it, and I didn't think to look at other modules.
Is there a reason to prefer 'rmmod' over 'modprobe'? (The man page just says "Most users will want to use modprobe with the -r option instead.")
Do you have any idea why I would have been able to suspend before (without the 'resume' hook and without unloading iwlagn)?
Is it correct for hibernate to behave as a reboot (passing through GRUB and all) before returning me to my previous state?
Last edited by Jade NB (2011-08-24 03:26:39)
My first guess was USB as well, but as this didn't solve the problem I unloaded every module and reloaded them iteratively until pm-suspend stopped working again, in the end it was iwlagn.
modprobe seems to be prefered as rmmod/insmod has no capability of resolving dependencies. I'm more used to typing rmmod, as it is faster to type and usually I don't need it anyway, and when I do, there are not that many dependencies (e.g. I use Gentoo on the x121e with most modules except wifi,usb,sound compiled in anyway).
Maybe there's some glitch in iwlagn that it worked previously, or maybe your wifi card was not up, or iwlagn wasn't loaded at all, can't say.
Hibernate should shutdown your computer and reboot regularly until coming back to your old state, yes.
Thank you for your help! I've been fooling around with getting rfkill to work the way I like, so it's indeed possible that the wifi just wasn't on before. (I was wondering how you figured out that it was iwlagn, but guessed that it must be some such sort of iterative problem-solving.)
Thx! R400 has same problem!
Just do the following:
create (as root obviously, perms: 644):
DO NOTE THOUGH IF YOU DO THIS:
Adding this file overrides the modules in:
/usr/lib/pm-utils/defaults (which you shouldn't edit)
So if there are modules listed here in 'SUSPEND_MODULES', copy those to your new version.
I copied this from davidcollins4481 from this post.