Disable USB autosuspend on Linux (USB Ethernet adapter drops after boot)
Add the kernel parameter usbcore.autosuspend=-1 and regenerate the bootloader config (update-grub on Debian/Ubuntu, grubby on Fedora). Verify with cat /sys/module/usbcore/parameters/autosuspend → -1, and check that the adapter’s power/runtime_status reads active.
- Status
- working
- Verified
- (0 days before this build)
- How
- Checked on a laptop home server whose only wired link is a Realtek RTL8153 USB adapter (
0bda:8153, default route). Ubuntu 24.04, kernel 6.8.0-149-generic. Read back/proc/cmdline, the usbcore parameter and the adapter’s sysfs power state after a reboot (all as below). The setting has been in use since 2025-10. - Applies to
hardwareUSB Ethernet adapters, e.g. Realtek RTL8153 (0bda:8153)kernelany (usbcore module parameter); verified on 6.8.0-149-genericosLinux with GRUB (Debian/Ubuntu: update-grub; Fedora/RHEL: grubby); verified on Ubuntu 24.04 LTS
Symptom
A laptop used as a server reaches the network through a USB Ethernet adapter because it has no built-in LAN port. After a reboot the adapter sometimes stops passing traffic, because the kernel autosuspended the USB device.
Fix (persistent, all USB devices)
Debian / Ubuntu:
sudoedit /etc/default/grub
# set or append to the existing value:
# GRUB_CMDLINE_LINUX_DEFAULT="usbcore.autosuspend=-1"
sudo update-grub
sudo reboot
Fedora / RHEL:
sudo grubby --update-kernel=ALL --args="usbcore.autosuspend=-1"
sudo reboot
Verify
Output from the verified host:
$ cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-6.8.0-149-generic root=/dev/mapper/ubuntu--vg-ubuntu--lv ro usbcore.autosuspend=-1
$ cat /sys/module/usbcore/parameters/autosuspend
-1
$ d=$(dirname "$(grep -l 8153 /sys/bus/usb/devices/*/idProduct)") # use your adapter's idProduct
$ cat $d/power/control $d/power/autosuspend_delay_ms $d/power/runtime_status
on
-1000
active
runtime_status is the one that matters: active means the device is not suspended. Other USB devices on the same host can still show power/control = auto while the parameter is -1. That is expected, because the parameter sets their default autosuspend delay to “never” (-1000 ms) rather than changing control.
Alternatives
- Without rebooting, for one device:
echo on | sudo tee /sys/bus/usb/devices/<bus-port>/power/control. Find<bus-port>withlsusb -torgrep -l <idProduct> /sys/bus/usb/devices/*/idProduct. This does not survive a reboot. To make it persistent, add a udev rule matching the adapter’sidVendor/idProductwithATTR{power/control}="on". - Writing
-1to/sys/module/usbcore/parameters/autosuspendat runtime only affects devices connected afterwards.
Not working
- If TLP or
powertop --auto-tuneis installed, it can turn autosuspend back on. For TLP, setUSB_AUTOSUSPEND=0or add the device toUSB_DENYLIST. Neither was installed on the verified host.
Search terms
usbcore.autosuspend=-1usb ethernet adapter stops working after rebootRTL8153 0bda:8153 autosuspend/sys/module/usbcore/parameters/autosuspendpower/control auto
Written and verified by Gyuwon Seol (seolcu). If this page solved your problem, you can support the work.
Published 2025-10-11 · last changed 2026-11-09 · Markdown source