13

How can we disable USB autosuspend on Ubuntu 18.04 for all USB devices and/or specific ones?

Previous questions on this subject are outdated (How can I disable usb-autosuspend for a specific device? and How to disable auto power off of usb devices like usb mouse?)

Edit: This question is completely unrelated to Two USB ports stopped working because my USB ports have not stopped working completely, but apparently and momentarily suspended for just a few (mili)seconds

Zanna
  • 70,465
Paulo Coghi
  • 2,024

4 Answers4

13

Update, 20201014: Just received validation (see comment from "Blackbird") that this solution continues to work in 20.04. Thanks Blackbird for the useful feedback!

This reference seems to be authoritative on disabling usb autosuspend.

Although the USB autosuspend is a feature designed to preserve battery life, its' 18.04 default is "enabled", whether or not the device Ubuntu is being installed on even has a battery.

Further, in order for autosuspend to be more help than harm, it appears that the USB device's driver needs to support autosuspend. Hence all the posts- yours' included- seeking to disable the "feature".

In 18.04 on my device, I scripted disabling autosuspend persistently in /etc/default/grub like so:

sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="/&usbcore.autosuspend=-1 /' /etc/default/grub

update-grub

systemctl reboot

The sed expression just prepends "usbcore.autosuspend=-1" with a trailing space after the initial quote mark to ensure it always matches whatever your particular GRUB_CMDLINE_LINUX_DEFAULT options look like.

If you execute cat /sys/module/usbcore/parameters/autosuspend after a reboot, you'll remark the "-1" preference (disabled) is retained.

Anyhoo, hope this helped you out-

F1Linux
  • 1,066
  • 1
    This simply did not work for me. My USB device (Yamaha eletric piano) still quits after about 30 seconds. The referenced article, while informative, does not make clear how to disable autosuspend altogether. – Paul A. Oct 24 '19 at 13:07
  • @PaulA. I’m using the above solution to disable autosuspend on a Linux router running 18.04. Are you running 18.04? – F1Linux Oct 24 '19 at 13:37
  • I'm running 18.04, but with the 19,04 backports. Where is the description of the settings for usbcore.autosuspend? The referenced authoritative writeup is from 2013. – Paul A. Oct 24 '19 at 14:49
  • @PaulA.Idea: If you've followed my instructions above, to exclude there's nothing funky related to the hardware itself, I'd suggest connecting a USB hard drive to it and seeing if that behaves correctly (doesn't auto-suspend). Also, try the Yamaha and the external hard drive on different USB ports on your Linux host to ensure the port itself is correct and has no faults. Give that a go and let me know the results bud- – F1Linux Oct 24 '19 at 18:35
  • I tried changing USB sockets but it made no difference. I think I can exclude the hardware as the source of the problem since it works perfectly under Windows 10 on the same dual-boot machine. Furthermore, if I reboot the music comes back again -- for about half a minute. Is there any chance that the 19.04 backports are related? That seems unlikely. – Paul A. Oct 24 '19 at 20:06
  • I tried attaching a USB drive and it keeps going. So perhaps there's something odd about the piano after all. – Paul A. Oct 24 '19 at 21:12
  • I think I can exclude the piano as the source of the problem since it works perfectly under Windows 10 on the same dual-boot machine. – Paul A. Oct 25 '19 at 09:55
  • If the USB hard drive doesn't power-suspend, then there's something going on with the device itself (or it's driver). Clearly auto-suspend IS disabled as the USB hard drive *DOESN'T* go into a low-power state during inactivity. So looks like "auto-suspend" was a red-herring. If auto suspend *WASN'T* being disabled, the USB hard drive would continue to be sent to a low power state after a period of inactivity. IDEA: can you update firmware in the Yamaha? I know absolutely nothing about this peripheral, so might be something you can look at – F1Linux Oct 25 '19 at 10:09
  • 1
    The fact that the piano works fine in Windows 10 (same machine) and recovers briefly after a reboot certainly indicates that the fault does not lie with the piano. I believe that autosuspend can be done selectively -- which might have something to do with the fact that the USB hard drive doesn't autosuspend but the piano apparently does. I also read somewhere that enablement of autosuspend was only recently set to default to enabled. – Paul A. Oct 26 '19 at 00:57
  • Another wrinkle, GRUB_CMDLINE_LINUX_DEFAULT may be overridden in /etc/default/grub.d -- I had to remove it from 50-curtain ... See https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1569567 – Matt Billenstein Oct 28 '19 at 20:23
  • this command helped in my case: echo -1 >/sys/module/usbcore/parameters/autosuspend. source: https://www.kernel.org/doc/Documentation/usb/power-management.txt – hwak Jun 12 '20 at 15:14
  • 4
    This solution also works for Ubuntu 20.04. – Blackbird Oct 14 '20 at 11:33
  • 3
    @Blackbird I updated my answer to include your feedback. Really appreciate you taking the time to provide useful feedback to improve the answer! – F1Linux Oct 14 '20 at 11:42
  • And if I don't use GRUB ? – Humpity Feb 23 '21 at 14:35
  • 1
    @F1Linux Funny how you immediatelly updated the answer with a positive feedback, but completely ignored the dude who said it didn't work for him. Well, this has no effect on my system either. – pishpish Apr 27 '21 at 10:44
  • 2
    Hi @pishpish- In regards to not responding to Humpity, my answer- the only answer- to this question is GRUB specific. I made no warranties for any other configuration. Humpity wanted an answer for non-GRUB. There's nothing stopping you or somebody else adding a NEW answer for Humpity. Whenever I solve a problem for myself and I feel the solution might benefit a wider audience, I knowledge share to avoid a gazillion folks- OK, 12,000 users at time of writing- all solving the same problem individually. – F1Linux Apr 27 '21 at 11:14
1

The solution above DID NOT help in my case (Ubuntu 21.10), but I found working solution for me: https://hackology.co.uk/2015/selective-usb-power-saving-linux-laptop/

From comments by the author:

Create a file for udev like this:

sudo nano /etc/udev/rules.d/92-usb-input-no-powersave.rules 

with the content of:

ACTION=="add", SUBSYSTEM=="input", TEST=="power/control", ATTR{power/control}="on"
user68186
  • 33,360
1

Change this file /etc/default/grub and edit this line

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.autosuspend=-1 pci=noearly acpi_no_static_ssdt acpi_sleep=nonvs amd_immu=force_isolation"

This solution worked for me.

Pilot6
  • 90,100
  • 91
  • 213
  • 324
0
  1. Create a file:

    sudo nano /var/lib/gdm3/.config/92-usb-input-no-powersave.rules
    
  2. with the content of:

    ACTION=="add", SUBSYSTEM=="input", TEST=="power/control", ATTR{power/control}="on"
    
  3. Run

    sudo chown gdm:gdm /var/lib/gdm3/.config/92-usb-input-no-powersave.rules
    
Gerere
  • 1
  • 1
    @Genere - hello and welcome to askubuntu; please try to provide more explanation; why run these commands? (and, most importantly, what they are doing) maybe add some references :) keep it up! – William Martens May 13 '22 at 19:16