USB Stromsparfunktionen abschalten
 

Eigentlich ist der Gedanke Strom zu sparen eine noble Sache. Gerade in heutigen Zeiten wie dem Klimawandel. Leider ist die Umsetzung und das Arbeiten mit Stromsparfunktionen eine ganz andere Sache und daher manchmal nicht zu empfehlen. Zumindest ergeht es mir so beim anstöpseln meiner externen Festplatte über USB. Nach einer Weile inaktivität geht der USB-Bus in den Stromspar-Modus und ist aus diesem nicht mehr aufzuwecken. Es sei denn, man startet den Rechner neu. Und das unter Linux! Laut heise.de liegt das an "Unklarheiten in der USB-Spezifikation", welche zu Verbindungsabbrüchen führen. In den USB-Spezifikationen sei festgehalten, daß ein Treiber 10ms warten muß, bevor er auf ein USB-Gerät zugreift. Es scheint aber, daß das die Minimum Zeit ist und nicht das Maximum und da manche Geräte eine etwas längere Zeit brauchen, führt das zu Verbindungsabbrüchen zum USB-Gerät. Daher, wer wie ich lieber mit dem Rechner arbeiten will als ihm beim Schlafen zuzusehen, kann die USB-Stromsparfunktionen auch abschalten. Dafür gibt es zwei Möglichkeiten:


1. Abschalten der USB-Stromsparfunktionen mittels Modul-Parameter

Um generell alle Stromsparfunktionen für alle USB-Devices abzuschalten, legt man eine Datei unter
/etc/modprobe.d/
an, z.B.
# nano /etc/modprobe.d/disable_usbcore_autosuspend.conf
In selbige schreibt man folgendes rein:
options usbcore autosuspend=-1
Dadurch wird die Standard-Zeit nach der ein USB-Device schlafen geht, welche normalerweise bei 2 Sekunden liegt, auf -1 gesetzt, was soviel bedeutet wie abgeschaltet, also gehe niemals schlafen.

Damit die geänderten Einstellungen für das Modul beim nächsten Neustart übernommen werden, muß man noch die Initial-Ram-Disk updaten, mittels
# update-initramfs -u

Nach dem nächsten Neustart sollte nun unter
# cat /sys/module/usbcore/parameters/autosuspend
der Wert -1 stehen, sowie unter
# cat /sys/bus/usb/devices/*/power/autosuspend
ebenfalls und unter
# cat /sys/bus/usb/devices/*/power/autosuspend_delay_ms
sollten viele -1000 (für Millisekunden) stehen.


2. Abschalten der USB-Stromsparfunktionen mittels Boot-Parameter für Grub

Für Debian Systeme liegt das Modul usbcore nicht als eigenständiges Modul vor, sondern ist fest in den Kernel integriert, daher werden die oben beschriebenen Maßnahmen einer Datei unter /etc/modprobe.d nicht funktionieren. Man muß vielmehr die Kernel Bootparameter ändern. Dazu öffnet man die Datei /etc/default/grub und ändert die Zeile
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
in
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.autosuspend=-1"
ab. Nach einem
# update-grub
und anschließendem Neustart sollte unter
# cat /sys/module/usbcore/parameters/autosuspend
ebenfalls ein -1 stehen. Noch anzumerken ist, daß in der Kernel-Dokumentation steht, daß für die Zukunft geplant ist, die Bezeichnung autosuspend in autosuspend_delay_ms abzuändern.