Resume from RAM funktioniert nicht zuverlässig

Hinweis: In dem Thema Resume from RAM funktioniert nicht zuverlässig gibt es 11 Antworten auf 2 Seiten. Der letzte Beitrag () befindet sich auf der letzten Seite.
  • Hallo,


    Ich benutze Leap 42.3 und habe dort ein kleines Script geschrieben, mit dem ich den Rechner per Mausklick schlafen legen kann. Dieses nutze ich, wenn ich weiß, daß ich den Rechner eine Zeitlang nicht brauche, aber ggf. eine kürzere Zeit später wieder nutzen werde. Damit will ich erreichen, daß er schneller wieder hochkommt


    Das Problem: Der Rechner schläft bei entsprechendem Mausklick zuverlässig ein, kommt aber bei Druck auf die Tastatur (oder Bewegen der Maus) nur unzuverlässig wieder hoch. Im Regelfall (wenn der Rechner richtig hochkommt) sehe ich den Sperrbildschirm, kann mich anmelden und weiterarbeiten. Im Fehlerfall läuft der Rechner zwar an (d.h. Lüfter fängt an zu laufen), ich sehe dabei keinen Sperrbildschirm und kann nichts eingeben. In diesem Zustand kann ich nur mit (längerem Druck) auf den Ausknopf den Rechner hart ausschalten und anschließend neu starten.


    "Unzuverlässig hochkommen" heißt: jedes 3. oder 4. Mal startet das System nicht mehr richtig.


    Das Skript:

    Bash
    #!/bin/bash
    #
    # Datum      Wer?   Warum?
    #
    sync
    systemctl suspend

    Den Befehl "sync" habe ich eingebaut, damit das System wenigstens alles auf die Platten geschrieben hat, wenn ich später den Ausschalter betätigen muß.


    Ich habe an Hardware:
    Motherboard Asus M5A97, 24 GB Memory, CPU Phenom II / X6 1090T, Graphikkarte AMD HD 6450 1GB Sapphire, Graphikkartentreiber. drm


    Um offen zu sein: Ich kämpfe schon einige Zeit mit dem Problem, komme z.Zt. nicht mehr weiter und bräuchte wenigstens Ideen.

    Für den Inhalt des Beitrages 120435 haftet ausdrücklich der jeweilige Autor: Suelkun

  • Warum benutzt du nicht einen Kurzbefehl auf hibernate?


    Wenn der Rechner nicht hochkommt, funktioniert noch eine echte Konsole STRG+ALT+F(1-6)

    Für den Inhalt des Beitrages 120436 haftet ausdrücklich der jeweilige Autor: Sauerland

  • In Kürze die ersten Unterschiede:


    1. Es dauert einiges länger, bis der Rechner sich Schlafen legt (1-2s (suspend) vrs. 30 - 60s (hibernate))


    2. Der Rechner bootet ganz normal übers Bios (Bei suspend (wenn es funktioniert): der Bios-Schirm wird gar nicht eingeblendet))


    3. Es kommt der ganz normale Anmeldebildschirm (Bei suspend: der Sperr-Bildschirm).

    Für den Inhalt des Beitrages 120445 haftet ausdrücklich der jeweilige Autor: Suelkun

  • sterun, vielen Dank für den Hinweis. Im Zitat steht ja, daß diese Zustände ggf. je nach Hardware-Konfiguration nicht richtig funktionieren können.


    Um es kurz zu machen: Auch hibernate funktioniert bei mir nicht richtig. Ich hatte oben auf den Post von Sauerland einige Unterschiede notiert. Hier noch ein paar neue:


    4. Nach Suspend blinkt bei mir die Powerlampe, nach Hibernate ist sie aus. (das wäre für mich natürlich jetzt nicht unbedingt wichtig), aber daran habe ich sonst immer gesehen, ob der Rechner "richtig" runtergefahren ist oder nicht.


    5. Ich hatte es oben schon bemerkt: Der Rechner bootet bei mir nach dem hibernate normal über Bios und grub ins normale Start-Menu. Wenn ich mich dort dann anmelde, dann fehlen die Applikationen, die ich bei Hibernate offen hatte. Das war ja das schöne an Suspend, daß die Applikationen offen blieben. D.h. ich konnte auch ein libreoffice-Dokument mitten im Text offen lassen und Suspend aufrufen. und danach waren alle Applikationen wieder da, ohne daß auch nur 1 Zeichen verloren gegangen wäre (wenn suspend denn funktionierte).
    Diese Eigenschaft von Hibernate könnte allerdings auch damit zusammenhängen, daß ich als Kernel-Parameter in grub die Option "noresume" verwende. Ich habe eine swap-Partition, aber nach dem gewöhnlichen Booten will ich den Rechner clean.

    Für den Inhalt des Beitrages 120450 haftet ausdrücklich der jeweilige Autor: Suelkun

  • Es mag schon vorkommen, dass das ein oder andere Board bei Suspend/Hibernate rumzickt.
    I.d.R. hält jedoch der Hersteller dann dafür BIOS Updates bereit.


    Oft liegt es jedoc an banalen Dingen.
    Wie ist dein Sleep/Hibernate konfiguriert?
    Es mag sein, dass dein swap zu klein ist, um vernünftiges Hiberate ausführen zu können.
    swap sollte dann etwas größer, als das verbaute RAM sein.
    Oder man verwendet eben stattdessen eine eigene Partition oder ein File. (Das aber auch genügend Platz haben muss.)


    Und man sollte checken, ob man nicht ein vorlautes Progrämmchen laufen hat, das Hibernate/Sleep unterbindet.
    Auch so kranke Dinger gibt es.


    Bei openSUSE sind die Befehle reboot und shutdown ein Link auf systemctl
    Mal angucken: su -c "file $(which reboot)"
    Dabei verhält sich systemctl je nachdem, wie man es aufruft etwas anders. Ein Paradebeispiel für solche Programme, wäre busybox.
    Das ist eine GNU-Tools Sammlung, die in einem einzigen Executablefile steckt. Es ist statisch gelinkt und somit sehr klein, was für den Einsatzweck auf Minilinuxkisten, wie WLAN Routern und dergleichen optimal ist.
    In /bin ist dann jeder Befehl nur ein Link auf busybox, und das verhält sich dann, wie ls, wenn es als ls gerufen wird, oder als mkdir, wenn man mkdir entert.


    Also auch erst einmal feststellen, was da wirklich gerufen wird.
    Viele User machen sich auch selbst Links auf irgendwelche Scripte.


    Zum Ausprobieren, was geht, aber die ausführliche Variante von systemctl- Befehlen nehmen.
    Nicht die Links, oder irgendwelche Scripte.
    Das schafft Klarheit.



    Ein paar Befehle zum Spielen damit:
    systemctl help systemd-hibernate.service Manpage des eigentlichen Dienstes. (also auch für suspend, shutdown usw. probieren)
    systemctl show hibernate zeigt die aktuellen Einstellungen an.
    systemctl set-property some.service someKey=someValue ändert Einstellungen.

  • ... das sind eine ganze Reihe von Vorschlägen. Wird eine Zeitlang dauern, bis ich das alles durchgeschaut habe. Einiges kann ich aber jetzt schon sagen:


    su -c "file $(which reboot)" liefert: /sbin/reboot: symbolic link to /usr/bin/systemctl


    Meine swap-Partition (5 GB) ist tatsächlich deutlich kleiner als mein Memory (24 GB). Wenn ich die swap-Partition aber auf 30GB vergrößere, ändert das am beschriebenen Verhalten von hibernate nichts.
    hibernate fährt bei mir den Rechner runter, dieses fatalerweise unter Umgehung meines Sicherungsskripts, mit dem ich alle Benutzer-Dateien auf eine Extra-Platte sichere, die dort noch nicht gesichert sind. Weil ich von außen nicht sehe, ob der Rechner per hibernate oder per shutdown gestoppt wurde, entsteht dabei die Gefahr, daß Dateien nicht gesichert sind (und wenn es meine eigene Schlamperei ist).


    Ich habe aber beim Rumstöbern gesehen, daß ich auch noch einen Zustand hybrid-sleep habe. Den habe ich (bei größerer swap-Partition) mal aktiviert. Dabei fährt der Rechner auch in einen Zustand, bei dem keine Power-Lampe blinkt, das Erreichen dieses Zustands dauert auch keine 2-3s sondern ca. 30s, aber beim Start (Taste oder Maus-Bewegung) fährt der Rechner in den Sperr-Bildschirm hoch. Wenn ich das Paßwort eingabe, sind alle offenen Applikationen da.


    Ich werde den Zustand hybrid-sleep erst einmal einige Zeit ausprobieren, ob der Rechner zuverlässig hochkommt. Die 20-30s wären mir egal.


    Für die übrigen Vorschläge brauche ich noch ein wenig Zeit.

    Für den Inhalt des Beitrages 120458 haftet ausdrücklich der jeweilige Autor: Suelkun

  • Vielleicht hätte ich das deutlicher schreiben sollen:


    Wenn du eh schon ein Script verwendest, dann solltest du dort NICHT den Link aufrufen, sondern wirklich den tatsächlichen systemctl Aufruf samt korrekten Argumenten.


    Wenn du die einfach mal durchprobierst, wirst du schon den richtig treffen....
    (und alles auch für suspend ausprobieren)


    Wie gesagt: die Powerlevels sind nicht auf allen Boards korrekt implementiert. Mag sein, dass ein Befehl mit anderen Argumenten dem näher kommt, was du möchtest.


    Aber von den Links im Script solltest du auf jeden Fall abstand nehmen.


    (Auch wenn ich nicht glaube, dass der sync nötig ist; das habe ich mir jetzt aber nicht en Detail angeguckt.)

  • ... derzeitiger Status:
    Das aufgerufene Skript lautet nun:

    Bash
    #!/bin/bash
    #
    # Datum      Wer?   Warum?
    #
    sync
    systemctl hybrid-sleep

    Mit diesem Skript schläft das System auf Mausklick zuverlässig ein und wacht (bisher) ebenso zuverlässig wieder auf.
    Ich habe außerdem die Taste "Sleep" so abgeändert, daß das gleiche Skript auf Tastendruck ausgeführt wird.


    Die Anmerkung


    Wenn du eh schon ein Script verwendest, dann solltest du dort NICHT den
    Link aufrufen, sondern wirklich den tatsächlichen systemctl Aufruf samt
    korrekten Argumenten.

    verstehe ich nicht ganz. Ich verwende im Script den einen ganz normalen systemctl-Befehl. Ist das so, daß die Befehlsoption (in meinem Fall jetzt: hybrid-sleep) immer noch ein Link ist?.

    Für den Inhalt des Beitrages 120635 haftet ausdrücklich der jeweilige Autor: Suelkun