So about a month ago I decided to update my kernel to the dreaded 3.x series. My old 2.6.x kernel was working fine, but of course I decided to try to update it anyway, knowing there were problems with suspend and a few other things.
I've always used gentoo-sources. So I tried 3.3.8. Hrm. Suspend doesn't work. I tried 3.4.5, 3.4.9 and 3.0.35 (older versions are no longer available.) If I'd known it would completely kill my suspend and make it useless, I wouldn't have bothered. Here's the problem: I can suspend fine. It appears to work. It powers off and goes into its suspend state. I press the space bar. Nothing. So, then I discovered that as of 3.2 USB wakeup had completely changed in the kernel, and you need to set hubs and devices in /proc/acpi/wakeup (which is normally done for you) *and* in /sys/devices. No biggie, I wrote a script to do just that at http://forums.gentoo.org/viewtopic-t-933934.html. So now I can wake with the keyboard as before. Or can I? If I suspend and wake up the PC within about 10 minutes it works. After that, all hell breaks loose. The PC is dead. Completely. Waking up no longer works, not with the keyboard, or even the power button. The *only* way is to pull the power plug and leave it unplugged for a few seconds. Then the PC comes to life. I've never seen an issue quite like this one... I use mdraid in my kernel with IMSM to dual boot Windows. I've been using it for a long time, so that's not it. The only thing that's changed are the kernel versions I've tried. So far, every 3.x kernel has done this. Now, this could very well be a kernel problem, heres my ACPI config: # Power management and ACPI options CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y # CONFIG_ACPI_PROCFS is not set # CONFIG_ACPI_PROCFS_POWER is not set # CONFIG_ACPI_EC_DEBUGFS is not set CONFIG_ACPI_PROC_EVENT=y CONFIG_ACPI_AC=y CONFIG_ACPI_BATTERY=y CONFIG_ACPI_BUTTON=y CONFIG_ACPI_FAN=y # CONFIG_ACPI_DOCK is not set CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_HOTPLUG_CPU=y # CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set CONFIG_ACPI_THERMAL=y # CONFIG_ACPI_CUSTOM_DSDT is not set CONFIG_ACPI_BLACKLIST_YEAR=0 # CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_PCI_SLOT is not set CONFIG_ACPI_CONTAINER=y # CONFIG_ACPI_SBS is not set # CONFIG_ACPI_HED is not set # CONFIG_ACPI_APEI is not set CONFIG_X86_ACPI_CPUFREQ=y CONFIG_PNPACPI=y CONFIG_ATA_ACPI=y # CONFIG_PATA_ACPI is not set # ACPI drivers # ACPI drivers # CONFIG_SENSORS_ACPI_POWER is not set Suspend stuff: CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y CONFIG_USB_SUSPEND=y Here's output from my script (usbwakeup -l): (USB4 is where my keyboard is) ~ # usbwakeup -l Listing USB hubs/devices and their wakeup status... USB ID :: Device* :: Status :: Device Description ---------------------------------------------------- 1d6b:0001 :: usb3 :: enabled :: UHCI Host Controller 051d:0002 :: 3-1 :: disabled :: Back-UPS RS 1200 FW:8.g1 .D USB FW:g1 1d6b:0001 :: usb4 :: enabled :: UHCI Host Controller 046d:c508 :: 4-1 :: disabled :: USB Receiver 046d:c221 :: 4-2.1 :: enabled :: Gaming Keyboard 1d6b:0001 :: usb5 :: enabled :: UHCI Host Controller 1d6b:0002 :: usb1 :: enabled :: EHCI Host Controller 1d6b:0001 :: usb6 :: enabled :: UHCI Host Controller 1d6b:0001 :: usb7 :: enabled :: UHCI Host Controller 1d6b:0001 :: usb8 :: enabled :: UHCI Host Controller 1d6b:0002 :: usb2 :: enabled :: EHCI Host Controller *Use the Device column to identify hubs/devices to be toggled. 11 USB hubs/devices listed. Output from acpitool -w: osoikaze ~ # acpitool -w Device S-state Status Sysfs node --------------------------------------- 1. P0P1 S3 *disabled pci:0000:00:01.0 2. UAR1 S3 *disabled pnp:00:03 3. P0P2 S4 *disabled pci:0000:00:1e.0 4. USB0 S3 *disabled pci:0000:00:1d.0 5. USB1 S3 *disabled pci:0000:00:1d.1 6. USB2 S3 *disabled pci:0000:00:1d.2 7. USB5 S3 *disabled 8. USB6 S3 *disabled pci:0000:00:1a.2 9. EUSB S3 *disabled pci:0000:00:1d.7 10. USB3 S3 *disabled pci:0000:00:1a.0 11. USB4 S3 *enabled pci:0000:00:1a.1 12. USBE S3 *disabled pci:0000:00:1a.7 13. PEX0 S4 *disabled pci:0000:00:1c.0 14. PEX1 S4 *disabled pci:0000:00:1c.1 15. PEX2 S4 *disabled pci:0000:00:1c.2 16. PEX3 S4 *disabled pci:0000:00:1c.3 17. PEX4 S4 *disabled pci:0000:00:1c.4 18. PEX5 S4 *disabled pci:0000:00:1c.5 19. SLPB S4 *enabled 20. PWRB S3 *enabled Does anyone have any idea what could be wrong here? This is driving me crazy, I hate shutting down my PC when I'm not using it. I could live without the keyboard if the damn power button would work, but even if I don't set the USB wakeup (through /proc/acpi/wakeup or my script) it still gets stuck in the 'eternal' sleep. The whole kernel config is at http://pastebin.com/2G9vWD0R The only thing I haven't tried yet is installing something like Ubuntu and see if it has the same problem.