Ich habe meinen HTPC von Kernel 3.7.10 auf 3.10.7 aktualisiert und es scheint, dass CONFIG_USB_SUSPEND jetzt von den Kernel-Optionen verschwunden und in PM enthalten ist.
Das Hauptproblem besteht darin, dass ich eine externe Festplatte besitze und diese beim Anhalten und Aufwecken des HTPC nicht für das System verfügbar ist. Die Festplatte wird aktiviert (Sie hören, wie sie sich erneut dreht). Wenn Sie jedoch versuchen, auf den Einhängepunkt zuzugreifen, wird die folgende Fehlermeldung angezeigt:
ZOTAC ~ # ls /media
ls: reading directory /media: Input/output error
Und auf dmesg:
[ 253.278260] EXT4-fs warning (device sdb1): __ext4_read_dirblock:908: error reading directory block (ino 2, block 0)
In früheren Kernels konnte das Problem durch Setzen von CONFIG_USB_SUSPEND = N behoben werden, da die Festplatte ihren Ruhezustand selbst handhabte und der Einhängepunkt immer zugänglich war. Wenn sich die Festplatte im Energiesparmodus befand und der HTPC etwas vom Einhängepunkt der Festplatte benötigte, wurde die Festplatte selbst ohne Probleme aktiviert und betriebsbereit.
Im Moment habe ich Folgendes ohne Erfolg versucht:
- Ändern Sie / sys / bus / usb / devices / usb * / power / control manuell auf "on" anstatt auf "auto" .
- Ändern Sie / sys / bus / usb / devices / usb * / power / autosuspend manuell auf "-1" anstatt auf "0" .
Beim erneuten Aufwecken des HTPC ist der Mount-Punkt jedoch wieder nicht erreichbar. Als Workarround kann ich den Mount-Punkt aushängen und wieder einhängen und es funktioniert wieder ohne Probleme, aber ich bin mir sicher, dass es eine Möglichkeit geben sollte, zu vermeiden, dass das Betriebssystem den USB-Autosuspend handhabt.
Irgendeine Idee, wie man usb autosuspend auf Kernel 3.7.10 oder höher deaktiviert?
quelle
/sys/bus/usb/devices/<BUS>-<DEVPATH>/power/persist
dir Schwanz1
? Gibtgrep CONFIG_PM_RUNTIME /boot/config-$(uname -r)
es diry
? power-management.txtpower/persist
gibt1
und ich habe keine Konfigurationsdatei in/boot
.CONFIG_PM_RUNTIME=y
ist in der Kernel-.config
Datei konfiguriert .Antworten:
Für Ubuntu und Debian ,
usbcore
wird in den Kernel kompiliert, erstellen Sie so Einträge/etc/modprobe.d
werden nicht arbeiten: wir müssen die Parameter Kernel - Boot ändern.Bearbeiten Sie die
/etc/default/grub
Datei und ändern Sie dieGRUB_CMDLINE_LINUX_DEFAULT
Zeile, um dieusbcore.autosuspend=-1
Option hinzuzufügen :Beachten Sie, dass
quit splash
bereits Optionen vorhanden waren. Behalten Sie also auch andere Optionen bei.Nachdem Sie die Datei gespeichert haben, aktualisieren Sie grub:
Und neu starten .
Überprüfen Sie nun den
autosuspend
Wert:Und es sollte angezeigt werden
-1
.In der Kerneldokumentation wird angegeben, dass sich dieser Parameter eines Tages in
autosuspend_delay_ms
(anstelle vonautosuspend
) ändern wird .quelle
autosuspend_delay_ms
.Gemäß der Kernel Baum Dokumentation wird die AutoSuspend idle-Verzögerungszeit durch den kontrollierten
autosuspend
Modulparameter inusbcore
. Wenn Sie die anfängliche Standard-Leerlaufverzögerung auf -1 einstellen, wird das automatische Suspendieren von USB-Geräten verhindert. Sie sollten weiterhin in der Lage sein, die automatische Suspendierung für ausgewählte Geräte zu aktivieren.Der
usbcore.autosuspend
Kernel-Parameter kann eingestellt werden, wenn das Modul manuell geladen wird:oder durch Hinzufügen der folgenden Zeile zu einer Konfigurationsdatei in
/etc/modprobe.d
:Wenn
usbcore
im Kernel kompiliert, kann der Parameter angepasst werden, indem der Kernel-Befehlszeile Folgendes hinzugefügt wird:Zuletzt kann die Option zur Laufzeit angepasst werden:
Die Änderung wirkt sich auf alle neuen USB-Geräte aus. Bereits vorhandene Geräte bleiben davon unberührt.
quelle
usbcore
in den Kernel kompiliert, aber diemodprobe.d
Option scheint nicht zu funktionieren. Obwohlmodprobe -c usbcore | grep autosuspend
es so angezeigt wird-1
,cat /sys/module/usbcore/parameters/autosuspend
bekomme ich2
autosuspend
ist veraltet. Die neue Dateiautosuspend_delay_ms
dauert ms anstatt Sekunden. ref . Aberpower/control
eingestellt aufon
sollte die gleiche Wirkung haben.autosuspend=-1
in beidenmodprobe.d
undkernel
Parameter zu verwenden, aber die Festplatte wird immer noch angehalten und wacht nicht schön auf.autosuspend_delay_ms
zu-1
? (In/sys/bus/usb/devices/<device>/power/autosuspend_delay_ms
)autosuspend_delay_ms
ist nicht da. Aberautosuspend
IST.Ich habe ein ähnliches Problem mit einer Microsoft Wheel Mouse, die mit optischem USB und PS / 2 kompatibel ist, seit ich ein Linux Mint Debian Edition- System auf den Kernel aktualisiert habe
3.10-2-amd64
. Es wurde vermutet, dass das USB-Power-Management des Kernels eine unangemessene automatische Unterbrechung verursacht . In Debian wird dies alsusbcore
Modul in den Kernel kompiliert .Sie können dies dauerhaft ändern, indem Sie in der Befehlszeile Folgendes eingeben:
Einige Kernel könnten dies jedoch erfordern
autosuspend=0
.Wenn Ihr System
initrd
(höchstwahrscheinlich) verwendet, erstellen Sie dasinitrd
für Ihren Kernel neu.Beispielsweise:
Starten Sie neu und überprüfen Sie mit:
was
-1
jetzt nachgeben sollte .quelle
initrd
und die hier beschriebenen Aktionen funktionieren in diesem Fall nicht, da sie zuvor beantwortet wurden.