I’ve always wondered why Macs could wakeup from sleep by a mere keystroke, but my Linux boxes required me to press the power button. It turns out you can enable wake from suspend/hibernate in Linux by adding the following to /etc/rc.local, which is run at startup:
for i in `/bin/grep USB /proc/acpi/wakeup | /usr/bin/awk '{print $1}'`;
do
echo $i > /proc/acpi/wakeup;
done/proc/acpi/wakeup will then look something like:
$ cat /proc/acpi/wakeup Device S-state Status Sysfs node PCI0 S5 disabled no-bus:pci0000:00 PEX0 S5 disabled pci:0000:00:1c.0 PEX1 S5 disabled pci:0000:00:1c.1 PEX2 S5 disabled PEX3 S5 disabled PEX4 S5 disabled PEX5 S5 disabled HUB0 S5 disabled pci:0000:00:1e.0 IGBE S5 disabled USB0 S3 enabled pci:0000:00:1d.0 USB1 S3 enabled pci:0000:00:1d.1 USB2 S3 enabled pci:0000:00:1d.2 USB3 S3 enabled pci:0000:00:1a.0 USB4 S3 enabled pci:0000:00:1a.1 USB5 S3 enabled pci:0000:00:1a.2 EHC1 S3 disabled pci:0000:00:1d.7 EHC2 S3 disabled pci:0000:00:1a.7 AZAL S5 disabled pci:0000:00:1b.0
and voila: when your Linux box suspends, you can wake it up by pressing any key on your USB keyboard.