Page 1 of 1

Suspend: Disable wakeup on mouse-move (Linux)

PostPosted: Thu Mar 07, 2013 2:36 pm
by ^rooker
[PROBLEM]
Since upgrading to from Xubuntu 11.10 oneiric to LTS 12.04 precise, my PC would resume from suspend when the mouse moved. That might sound fun, but it's pretty annoying, considering that you touch the table to pick up something and the PC resumes again... hmpf. :?

[SOLUTION]
The following is closely based on a blog entry by "shadyabhi" on abhijeetr.com, but adapted to my setup (which had different wakeup-devices enabled).

In order to see what is enable to wake up your system from suspend, take a look at "/proc/acpi/wakeup", like this:
Code: Select all
$ cat /proc/acpi/wakeup

In my case the output was as follows:
Code: Select all
Device   S-state     Status   Sysfs node
P0P1     S4   *disabled  pci:0000:00:01.0
P0P2     S4   *disabled 
P0P3     S4   *disabled 
P0P4     S4   *disabled 
GBE     S4   *enabled   pci:0000:00:19.0
BR20     S3   *disabled 
EUSB     S3   *enabled   pci:0000:00:1d.0
USBE     S3   *enabled   pci:0000:00:1a.0
PEX0     S4   *disabled  pci:0000:00:1c.0
BR21     S4   *disabled  pci:0000:02:00.0
PEX1     S4   *disabled 
PEX2     S4   *disabled 
PEX3     S4   *disabled  pci:0000:00:1c.3
PEX4     S4   *disabled 
PEX5     S4   *disabled 
PEX6     S4   *disabled 
PEX7     S4   *disabled 
PWRB     S3   *enabled

I'm pretty sure that "PWRB" means "power button", and "GBE" means "GigaBit Ethernet", and it's obvious that "EUSB" and "USBE" relate to my mouse (because it's connected by USB) - Although I'm not so sure what exactly the difference "EUSB" vs "USBE" is.
However, I wanted only the power button and my network (WOL) to allow resume from suspend.

If you echo one of those "Device" abbreviation strings to /proc/acpi/wakeup, it toggles the state between enable/disabled.

So in my case I did (as root):
Code: Select all
$ printf "EUSB\nUSBE\n" > /proc/acpi/wakeup

This toggled the enabled state of EUSB and USBE to disabled, leaving only "GBE" and "PWRB":
Code: Select all
Device   S-state     Status   Sysfs node
P0P1     S4   *disabled  pci:0000:00:01.0
P0P2     S4   *disabled 
P0P3     S4   *disabled 
P0P4     S4   *disabled 
GBE     S4   *enabled   pci:0000:00:19.0
BR20     S3   *disabled 
EUSB     S3   *disabled  pci:0000:00:1d.0
USBE     S3   *disabled  pci:0000:00:1a.0
PEX0     S4   *disabled  pci:0000:00:1c.0
BR21     S4   *disabled  pci:0000:02:00.0
PEX1     S4   *disabled 
PEX2     S4   *disabled 
PEX3     S4   *disabled  pci:0000:00:1c.3
PEX4     S4   *disabled 
PEX5     S4   *disabled 
PEX6     S4   *disabled 
PEX7     S4   *disabled 
PWRB     S3   *enabled


That change however is not permanent.
You could write a small script though, call it "acpi_wakeup" and put it in "/etc/init.d":
Code: Select all
#!/bin/sh
printf "EUSB\nUSBE\n" > /proc/acpi/wakeup

Make it executable:
Code: Select all
$ chmod 755 /etc/init.d/acpi_wakeup

Then use 'update-rc.d' to make the required symbolic links automatically in other directories:
Code: Select all
$ update-rc.d acpi_wakeup defaults


Thanks shadyabhi, for your help!

acpi/wakeup: Enable / disable permanently

PostPosted: Tue Oct 31, 2017 6:06 pm
by ^rooker
Here's an option for disabling USB devices permanently from waking up (resuming) from suspend:
(Xubuntu 16.04.3)

Add the following lines to "/etc/rc.local":
Code: Select all
echo "USBE" > /proc/acpi/wakeup
echo "EUSB" > /proc/acpi/wakeup


Thanks to a blog article by Thomas Monaco for this tip.