Ich hatte Fedora 14 auf diesem HP Compaq 610 installiert, und die Suspend-Funktion funktionierte einwandfrei. Nachdem ich Scientific Linux 6.1 suspend installiert habe, funktioniert suspend nicht mehr. Wie debugge / behebe ich es?
Ich hatte Fedora 14 auf diesem HP Compaq 610 installiert, und die Suspend-Funktion funktionierte einwandfrei. Nachdem ich Scientific Linux 6.1 suspend installiert habe, funktioniert suspend nicht mehr. Wie debugge / behebe ich es?
Antworten:
Es gibt viele Möglichkeiten, mit Suspend- und Hibernate-Funktionen umzugehen. Viele der alten Methoden sind veraltet. Dies hat die Suche nach Lösungen schwierig gemacht, da anscheinend jede Lösung völlig unabhängig von der nächsten ist. Nachdem das gesagt worden ist...
Die derzeit empfohlene Methode, die von http://pm-utils.freedesktop.org/wiki/ empfohlen wird , sollte für die neuesten Distributionen verfügbar sein. Ich würde zuerst prüfen, ob Sie pm-utils
installiert haben und ob die enthaltenen Befehle wie erwartet funktionieren.
Um anzuzeigen, ob das Paket installiert ist, geben Sie diesen Befehl im Terminal ein
rpm -qa | grep pm-utils
Dies sollte die von Ihnen installierte Version ausgeben. Wenn Sie nicht die erwartete Ausgabe erhalten, müssen Sie das Paket installieren.
sudo yum install pm-utils
Sobald Sie dies überprüft haben, testen Sie Ihre Fähigkeit zum Suspendieren.
sudo pm-suspend
Wenn Sie nicht anhalten und keine Ausgabe erhalten, überprüfen Sie die aktuelle dmesg-Ausgabe
dmesg | tail -50
Dies sollte Ihnen den Einstieg erleichtern. Sobald Sie einige Hinweise erhalten haben, ist es viel einfacher, den Weg weiter hinunterzugehen. Poste zurück mit Kommentaren zu deinen Ergebnissen, ich kann dich durch den Rest bringen.
dmesg
Ausgabe zeigt Ihnen, was sich hinter den Kulissen abspielt. Noch wichtiger ist, was insbesondere scheitern könnte. Übrigens, Sie brauchen das Entwicklungspaket nicht. Sie benötigen sie nur beim Kompilieren von Code. Sie können sie also löschen. Von hier aus gibt es viele Richtungen, ich möchte Sie nur nicht dazu bringen, den falschen Baum zu bellen.
pm-suspend
Befehle über eine Shell und nicht über das GNOME-Menü auszuführen? Versuchen Sie es echo -n "mem" >/sys/power/state
als root. Auch wenn Sie verwenden acpi
, können Sie acpi_listen
sehen, welche Ereignisse generiert werden, z. B. beim Schließen des Deckels.
Versuchen Sie dies als root:
PM_DEBUG=true pm-suspend
Suchen Sie dann /var/log/pm-suspend.log
nach Hinweisen darauf, was schief gehen könnte.
Wenn Sie anhalten, aber nicht fortsetzen können, gibt es im Ubuntu-Wiki einen guten Artikel zum Debuggen dieses Problems.
Wenn Sie nur erhalten möchten, wenn Sie das System angehalten / wieder aufgenommen haben, können Sie Folgendes versuchen:
cat /var/log/syslog | grep 'systemd-sleep' | grep "Suspending\|resumed";
Feb 7 10:44:23 dmatej-lenovo systemd-sleep[19900]: Suspending system...
Feb 7 10:44:33 dmatej-lenovo systemd-sleep[19900]: System resumed.
Feb 7 10:45:35 dmatej-lenovo systemd-sleep[20707]: Suspending system...
Feb 7 12:58:39 dmatej-lenovo systemd-sleep[20707]: System resumed.
Feb 7 14:42:55 dmatej-lenovo systemd-sleep[24690]: Suspending system...
Feb 7 16:31:57 dmatej-lenovo systemd-sleep[24690]: System resumed.
Wie von Mika als Wurzel vorgeschlagen:
PM_DEBUG=true pm-suspend
Details innerhalb:
/var/log/pm-suspend.log
In diesem Fall suchen Sie wo
[...] service [servicename] suspend suspend success
endet und
[...] service [servicename] suspend resume success
beginnt. Irgendwo dazwischen finden Sie möglicherweise Anrufe, die einen Fehler zurückgeben. An diesem Punkt wird die Unterbrechung gesperrt. In diesem Fall können Änderungen ausgesetzt werden, die zurückgesetzt werden. Finden Sie heraus, welcher Serviceabruf den Fehler auslöst, öffnen Sie ihn in vi und sehen Sie ihn sich an.
Ich hatte das gleiche Problem, bei dem nach der Installation xboxdrv
unter Ubuntu 12.04 in einer Regel /etc/pm/sleep.d/
versucht wurde, einen Dienst zu stoppen, der in diesem Fall nie gestartet wurde oder nicht vorhanden war xboxdrv
. Es stellte sich heraus, dass es überhaupt nicht gestartet werden konnte, da es kein /lib/modules/uinput.ko
Modul gab, da dieses Modul mit dem Kernel zusammengeführt wurde. Dies führte dazu, dass die case-Anweisung /etc/pm/sleep.d/xboxdrv
einen Fehler auslöste, wenn der Fall "suspend" mit dem Aufruf übereinstimmt service xboxdrv stop
. Wenn Sie die Zeile mit #
Bypass voranstellen, wird die Anweisung umgangen, und zwar auf Kosten des Trennens und erneuten Steckens Ihres Controllers beim Anhalten und Fortsetzen.