Hi, I've got a clean install of debian 6.0 squeeze, and am trying to get sleep/hibernate (suspend to ram/disk) to work. I'll document what I have working first (to help anyone else searching for answers), and hopefully someone can help me past where I'm currently stuck...
I'm writing this up at work, so can't quite remember all the details. ??? are bits I can't quite remember. I started with a new system: - Gigabyte H55M-USB3 + i3-540 - 20TB WD20EARS (Incidentally, the drive suffers from this problem [http://wdc.custhelp.com/app/answers/detail/a_id/5357]. I did disable the head parking using the wdidle3 tool provided by WD.) - SATA DVD drive - 2x2GB RAM - generic USB keyboard, PS/2 mouse and performed a netinstall of Debian Squeeze 6.0. Without doing anything else, I attempted to put the system to sleep: # pm-sleep The screen blanked off the X session to a terminal window where I see [xxxxx] pm_op(): usb_dev_freeze+0x0/0x20 returns -2 [xxxxx] PM: Device usb3 failed to quiesce: error -2 [xxxxx] PM: ??? It isn't always usb3, but some random usb port as far as I can tell. Some research led me to the xhci driver. It does not respond well to suspend commands, and the easiest workaround is to add a script which unloads it prior to suspend and reloads it afterward: /etc/pm/sleep.d/05_xhci #!/bin/sh # Fix USB3 suspend and hibernate problems case $1 in hibernate) modprobe -r xhci ;; suspend) modprobe -r xhci ;; thaw) modprobe xhci ;; resume) modprobe xhci ;; *) echo "USB3 fix script: wrong argument!" ;; esac Change the script to mode 755. The errors go away and sleep works fine. (Reference: http://disi.unitn.it/~ferro/index.php/linux) Next, I attempted to hibernate the system: # pm-hibernate It showed this error: ata3: softreset failed (???) but then the machine proceeded to (as far as I can tell) swap out memory and shut itself down. Powering the machine back on resulted in a normal boot (not a resume). It turns out I had not told the kernel about the resume partition. This can be done through grub by editing /etc/defaults/grub: GRUB_CMDLINE_LINUX="resume=UUID=<partition_id>" where <partition_id> is the UUID of the swap partition from /etc/fstab. Run update-grub: # update-grub In my case, I have a 4GB swap partition (as created by the installer), and I don't remember offhand where I saw this, but I believe that there is enough swap space for the memory. Now pm-hibernate still shows ata3: softreset failed (???) and the shutdown appears as it was before. But now powering up results in swapping in of memory before I get: [xxxxx] pm_op(): usb_dev_freeze+0x0/0x20 returns -2 [xxxxx] PM: Device usb3 failed to quiesce: error -2 [xxxxx] PM: Resume failed The machine hangs for a few minutes before displaying a stack trace. (Sorry, I don't have the details now; I can check when I get home.) /var/log/pm-suspend.log does not show anything obviously wrong (to me). I can post that when I get home. I don't understand why devices need to quiesce on resume. Are drivers loaded first, then need to make room for the drivers that were in the suspended image? Does anyone have any idea why I am unable to resume from a hibernation state? Or is there something wrong with the suspend to disk in the first place? Is the ata3 error meaningful? Thanks in advance, Andre -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/aanlktikzwzayx430qajnwchmgwbksbxtp7vh1zlom...@mail.gmail.com