How do I configure WakeOnUSB properly?

It seems that something may be wrong with the system's ACPI table since none of the USB* devices are tied to a PCI bus.

On my laptop, when I plug in my USB keyboard, I can see the pci path 0000:00:1d.0 in dmesg output:

input: ... as /devices/pci0000:00/0000:00:1d.0/usb6/6-2/6-2.3/6-2.3:1.0/input/input14

From there I can find the ACPI device name in /proc/acpi/wakeup, and echo it in to enable it:

USB0  S3 enabled  pci:000:00:1d.0

I would assume that since the mapping of pci bus to ACPI device is missing for your system, it won't be possible to get it working. You may need to start debugging the DSDT to get much further. http://acpi.sourceforge.net/dsdt/index.php


I found on Ubuntu Lucid 10.04.3 with 2.6.32-37 that using /proc/acpi/wakeup is worthless. It seems /sys is the only thing that matters.

My usb-wakeup script linked below walks the /sys tree in reverse to enable just usbhid devices, aka the keyboard and mouse. It also enables their parent hubs and controllers. This is what it took for me to get it working. The udev rule triggers the script on boot, and when any usbhid device is plugged in.

The udev script requires the script to be in /usr/local/sbin, and make sure to make the script executable, chmod 755 /usr/local/sbin/usb-wakeup.

  • /etc/udev/rules.d/56-wakeupusb.rules
  • /usr/local/sbin/usb-wakeup