Originally reported as an Ubuntu bug -- they suggested I report upstream. Please let me know if I should re-attach all the files.
After suspending, there's no way to resume (tried keys, mouse buttons, power button). The fan was still running and both power LEDs were on (one indicating the laptop is plugged in, one indicating it's powered on). There is no disk LED on this laptop.
I held down the power button for 4-5s to force it to power off. Fan goes off, HD spins down, power light goes out, all as expected. (Occasionally when forcing power off, the laptop powers back on as soon as my finger is removed from the power button. May take 3-4 times to get it to stay off.)
When I hit the power button to turn it back on, fan comes on, HD briefly makes some noise, but it doesn't show the BIOS splash screen or anything -- just a totally black screen, like before I powered it off. The backlight is not on.
Removing and replacing the battery (while unplugged) is the only way to get it to boot normally.
I tried sudo pm-hibernate -- it worked, except it didn't actually shut down the laptop. After I heard the HD spin down I forced power off. On power-on, it resumed from hibernation just fine. This works reliably, aside from having to manually force power off, which sometimes fails.
I have no way of knowing if this is a regression -- I just got the laptop last week, blew away Windows and installed Ubuntu.
One other thing I should mention -- rarely, the keyboard and mouse won't work when Ubuntu boots up. What's interesting is that the keyboard will work in Grub, but then once the splash/login screen comes up, no dice. Force shutdown and startup fixes. I'm not too worried about this right now, just mentioning in case it could be related somehow.
I tried a few more things.
I rebooted in single-user mode using the 3.4.0 rc6 kernel and followed directions here:
I see this in dmesg:
[ 2.268515] Magic number: 12:953:1001
[ 2.268604] pnp 00:03: hash matches
I don't see any 00:03 in lspci output (attached to the Ubuntu bug report).
find /sys/devices -name "*00:03*"
Contents of files under .../pnp0/00:03/
cat: /sys/devices/pnp0/00:03/power/autosuspend_delay_ms: Input/output error
state = active
I did some experimenting with suspending but nothing I tried made any difference.
# echo mem > /sys/power/state
--- same problem
# echo standby > /sys/power/state
-bash: echo: write error: No such device
# cat /sys/power/state
# echo -n 3 > /proc/acpi/sleep
-bash: /proc/acpi/sleep: No such file or directory
I echoed device names into /proc/acpi/wakeup until they were all disabled, then tried suspending -- didn't make any difference.
I tried a bunch of "s2ram -f [other options]" commands in single-user mode, didn't help.
I tried adding reboot=bios or reboot=acpi to the kernel line in Grub. I didn't test extensively but it didn't seem to help.
I *did* make some progress with hibernation however. Maybe this info gives hints to what's happening with suspend.
The uswsusp Ubuntu package provides s2disk and modifies the power menu items to use it vs. the pm tools (iiuc). I installed it and also upgraded to the final 3.4 kernel (vs. before I was using 3.4rc6).
In /etc/uswsusp.conf there is a "shutdown method" line. I get different behavior depending on whether it's set to "platform" (default) or "shutdown".
With "shutdown method = platform":
- The system will not power off when I hibernate. I have to force power off.
- When I power on to thaw the system, a slightly-different BIOS/splash screen is shown that doesn't have the F2/F12 text at the bottom. This seems sensible.
With "shutdown method = shutdown":
- The system powers off by itself on hibernate. YES!
- On thaw, the regular boot BIOS/splash screen is shown. Not a problem though.
The other thing I figured out is that if the laptop is plugged in, it will reboot instead of powering off. However, if it's unplugged and just running on battery power, it powers off successfully.
The bottom line is that hibernate works perfectly now as long as the laptop is unplugged.
I did some experimenting with setting /sys/power/disk to [platform] vs. [shutdown] but it didn't seem to make any difference to anything.
The kernel option "i8042.nomux" might be helping the keyboard/touchpad issue, but I can't be sure since it's a fairly rare problem. At first I tried "i8042.reset" but the problem still occurred.
When the keyboard/touchpad don't work on boot/thaw, I can plug in a USB kbd/mouse and use them instead. Surprisingly, some of the special laptop function key-combos still work (such as Fn-F6 to adjust LCD brightness) even if the keyboard is dead.
Linux 3.4 is somewhat old...
Poweroff fix in bug 35262 is in Linux-3.8-rc
does it help here?
EHCI workaround being used in bug 43129
does it help here?
Will try this weekend.
Running 3.9.0-rc4, it suspends and resumes properly but the screen doesn't turn back on after resume. I tried these:
echo mem > /sys/power/state
Definitely working better than before -- on resume, I hear the HD spin up, the power LED goes from pulsing to solid-on, the num-lock key toggles its LED, only issue is the screen. If I then close the lid, wait for hibernate, and reopen the lid, the screen is back and my desktop session is still there.
Also, I think the issue with shutting down / hibernating while pluggegd in may be fixed. Need to test more. If I can get the screen to come back after resume I'll do extensive testing...
This sounds good. Can you log on your laptop via network(e.g ssh) after resume?
The screen problem seems caused by video driver.Which video driver are you using?
Yes, I can ssh in after resume. Video driver is radeon. Let me know if there's additional info I can provide, and thanks for the help!
$ sudo lshw -c video
description: VGA compatible controller
product: Wrestler [Radeon HD 6310]
vendor: Hynix Semiconductor (Hyundai Electronics)
physical id: 1
bus info: pci@0000:00:01.0
width: 32 bits
capabilities: pm pciexpress msi vga_controller bus_master cap_list rom
configuration: driver=radeon latency=0
resources: irq:41 memory:c0000000-cfffffff ioport:f000(size=256) memory:feb00000-feb3ffff
$ modinfo radeon
vermagic: 3.9.0-030900rc4-generic SMP mod_unload modversions
parm: no_wb:Disable AGP writeback for scratch registers (int)
parm: modeset:Disable/Enable modesetting (int)
parm: dynclks:Disable/Enable dynamic clocks (int)
parm: r4xx_atom:Enable ATOMBIOS modesetting for R4xx (int)
parm: vramlimit:Restrict VRAM for testing (int)
parm: agpmode:AGP Mode (-1 == PCI) (int)
parm: gartsize:Size of PCIE/IGP gart to setup in megabytes (32, 64, etc) (int)
parm: benchmark:Run benchmark (int)
parm: test:Run tests (int)
parm: connector_table:Force connector table (int)
parm: tv:TV enable (0 = disable) (int)
parm: audio:Audio enable (1 = enable) (int)
parm: disp_priority:Display Priority (0 = auto, 1 = normal, 2 = high) (int)
parm: hw_i2c:hw i2c engine enable (0 = disable) (int)
parm: pcie_gen2:PCIE Gen2 mode (-1 = auto, 0 = disable, 1 = enable) (int)
parm: msi:MSI support (1 = enable, 0 = disable, -1 = auto) (int)
parm: lockup_timeout:GPU lockup timeout in ms (defaul 10000 = 10 seconds, 0 = disable) (int)
> Yes, I can ssh in after resume.
This means pm core works well. Screen not resume is Graphic driver issume.
So assign to Graphic driver module. There will be Graphic expert.