1. Macken?
Zuerst würde ich bestätigen, dass Ihr Suspend korrekt funktioniert. Werfen Sie einen Blick auf die Seite mit den Macken und bestätigen Sie, dass Ihr Suspend ordnungsgemäß funktioniert und nicht nur so aussieht, als ob es richtig funktioniert.
2. Ist Ihr Skript 001_something ausführbar?
Stellen Sie sicher, dass Ihr 001_something
Skript ausführbar ist!
% chmod +x 001_something
3. Sieht Ihr Skript 001_something korrekt aus?
Stellen Sie sicher, dass Ihr Skript den pm-utils
Erwartungen entspricht.
Beispielskript
#!/bin/bash
case "$1" in
hibernate|suspend)
ACTION BEFORE SUSPEND/HIBERNATE
;;
thaw|resume)
ACTION AFTER RESUME
;;
*)
;;
esac
exit $?
HINWEIS: Setzen Sie Ihre Versuche, das Netzwerk zu verwenden, in den hibernate|suspend
richtigen Teil der case / switch-Anweisung?
4. Datei im Verzeichnis .d funktioniert (/etc/pm/suspend.d/ oder /usr/lib/pm-utils/sleep.d/)?
Als nächstes würde ich bestätigen, dass Ihr 001_something
Skript tatsächlich durch Suspend / Hibernate korrekt erfasst wird, indem es einfach in eine Datei mit einer Zeichenfolge zurückgesendet wird, damit Sie wissen, dass es funktioniert.
echo "yup I'm working" > /tmp/pmck_`date +%Y-%T`.log
Sie sollten dann Dateien wie pmck_2013-16:08:11.log
in sehen /tmp
.
5. / var / log?
Wenn das obige .d- Verzeichnis funktioniert, würde ich eine erstellen 001_something
und die /var/log/pm-suspend.log
Datei, von der Sie glauben, dass sie überschrieben wird, in eine andere Datei kopieren /tmp
lassen. Auf diese Weise können Sie zumindest bestätigen, dass die Protokollierung korrekt ist. Dies kann Ihnen weitere Einblicke in das Geschehen geben.
cp /var/log/pm-suspend.log /tmp/pmlg_`date +%Y-%T`.log
6. Schlafhakennummer?
Können Sie auch den Namen Ihrer Hook-Datei in 00-something
anstelle von ändern 001_something
? Nicht sicher, aber die Manpage zeigt diese Werte an.
SLEEP HOOK ORDERING CONVENTION
00 - 49
User and most package supplied hooks. If a hook assumes that all of the usual services and userspace infrastructure
is still running, it should be here.
50 - 74
Service handling hooks. Hooks that start or stop a service belong in this range. At or before 50, hooks can assume
that all services are still enabled.
75 - 89
Module and non-core hardware handling. If a hook needs to load/unload a module, or if it needs to place non-video
hardware that would otherwise break suspend or hibernate into a safe state, it belongs in this range. At or before
75, hooks can assume all modules are still loaded.
90 - 99
Reserved for critical suspend hooks.
7. Netzwerkkonnektivität?
Fügen Sie Ihrem 001_something
Skript Folgendes hinzu :
TMP=/tmp/pmip_`date +%Y-%T`.log
# network status?
ip link show > $TMP
# dns working?
dig google.com +answer >> $TMP
# can we ping google?
ping -c 5 www.google.com >> $TMP
8. Bug mit pm-utils, HAL und Wheezy?
Ich bin auf diesen Debian-Fehlerbericht gestoßen und habe mich gefragt, ob dies die Ursache für Ihr Problem sein könnte. Der Fehler beschreibt ein Problem mit HAL und pm-utils. Es klingt so, als würde das Entfernen von HAL das Netzwerkproblem beheben.
9. Ausführlicheres Debuggen von pm-utils
Zusätzlich gibt es diesen Link, der Ratschläge für Debian-spezifische Probleme beim Anhalten / Fortsetzen bietet. Es wird eine Möglichkeit erwähnt, die Protokollierung von pm-utils durch Festlegen einer Variablen PM_DEBUG=true
in der /usr/lib/pm-utils/pm-functions
Datei zu erhöhen .
Auszug
Debugging für pm-utils aktivieren
Das Protokoll der Suspend- und Resume-Prozesse befindet sich in der Datei /var/log/pm-suspend.log. Es enthält standardmäßig mäßig ausführliche Informationen. Weitere Informationen können zum Debuggen aktiviert werden, indem der Zeilenexport PM_DEBUG = true am Anfang der Datei / usr / lib / pm-utils / pm-Funktionen eingefügt wird.
Vielleicht kann dies hilfreich sein, um Ihnen mehr Einblick in die Vorgänge mit pm-utils zu geben!
10. ACPI fährt das Netzwerk vor pm-utils
?
Wenn das Problem nicht auftritt pm-utils
, liegt es möglicherweise an acpi
. Wenn Sie den Deckel Ihres Laptops schließen, wird ein acpi
Ereignis ausgelöst, dem eine Aktion zugeordnet ist.
EREIGNIS-Datei
% more /etc/acpi/events/lm_lid
event=button[ /]lid
action=/etc/acpi/actions/lm_lid.sh %e
ACTION-Datei
% more /etc/acpi/actions/lm_lid.sh
#! /bin/sh
test -f /usr/sbin/laptop_mode || exit 0
# lid button pressed/released event handler
/usr/sbin/laptop_mode auto
Bei näherer Betrachtung werden laptop_mode
Sie feststellen, dass dieses Tool für eine Vielzahl von Aufgaben verantwortlich ist, darunter die Verwaltung des Status Ihrer Netzwerkgeräte.
Der Laptop-Modus verwaltet ein Verzeichnis /etc/laptop-mode/conf.d
, ähnlich wie bei anderen Unix-Tools. Darin befinden sich Dateien, die sich auf das Ethernet und drahtlose Netzwerkgeräte beziehen.
In der primären Konfiguration. Datei /etc/laptop-mode/laptop-mode.conf
,, ist die Fähigkeit, ausführlichere Nachrichten zu aktivieren. Vielleicht bringt dies zusätzliches Licht auf das, was los ist?
VERBOSE_OUTPUT=1
Zusammenfassung der oben genannten Punkte basierend auf dem Feedback des OP
1: Suspend funktioniert in Bezug auf den Akkuverbrauch und die Sleep-LED auf meinem Notebook. Ansonsten verstehe ich nicht, wie die erwähnte Webseite mir helfen soll, es herauszufinden.
2: Es ist.
3: Es sieht richtig aus.
4: Ich bekomme diese Dateien.
5: Ich erhalte die entsprechenden Protokolldateien, diese sind jedoch für mich nicht hilfreich.
6: 00 statt 001 zeigt keinen Unterschied.
7: In diesem Abschnitt wird lediglich die Netzwerkkonnektivität getestet. Wie in meiner Frage erwähnt, habe ich keine Netzwerkverbindung, sobald das Skript ausgeführt wird. Das wlan0-Gerät ist ausgefallen. Die Protokolldateien: http://paste.debian.net/231760 .
HINWEIS: Ich hatte dig nicht installiert (Fehlermeldung im paste.debian.net-Protokoll), es ist jedoch klar, dass kein Netzwerkzugriff verfügbar ist (wie gesagt). Ich kann sehen, dass es nicht funktioniert, indem ich die Ausgabe von iwconfig, ip link show, ping, ... überprüfe. Das Perl-Skript ist das betreffende Skript.
Übrigens, sobald die erste Zeile von /usr/lib/pm-utils/bin/pm-action
(von oben) ausgeführt wird, ist das Netzwerk bereits ausgefallen.
8: hal wurde installiert, das Entfernen ändert nichts.