# suspend to disk



## RedWing (18. August 2005)

Hallo, 

kann mir jemand sagen wie ich dieses suspend to disk vielleicht zum laufen bekomme...

Habe einen 2.6.12-gentoo-r9 Kernel welcher schon von mir auf Software Suspend gepatched und kompiliert 
wurde...
Wenn ich nun: 

```
echo 4 > /proc/acpi/sleep
```
passiert gar nix...

Und das hibernate Skript funktioniert genauso wenig, der Bildschirm wird kurz Schwarz und danach sehen 
die Logs so aus:


```
euklid redwing # hibernate   
hibernate: [01] Executing CheckLastResume ...
hibernate: [01] Executing LockFileGet ...
hibernate: [01] Executing NewKernelFileCheck ...
hibernate: [10] Executing EnsureSwsusp2Capable ...
hibernate: [11] Executing XHacksSuspendHook1 ...
hibernate: [89] Executing SaveKernelModprobe ...
hibernate: [95] Executing XHacksSuspendHook2 ...
hibernate: [97] Executing ChangeToSwsuspVT ...
hibernate: [99] Executing DoSwsusp2 ...
hibernate: Activating suspend ...
hibernate: Suspend reported the following errors:                #sehr aussagekräftige Fehlermeldung übrigens
 - Suspend was aborted (see dmesg).
Couldn't extract useful information from dmesg. Not logging here.
hibernate: [97] Executing ChangeFromSwsuspVT ...
hibernate: [91] Executing GentooModulesAutoload ...
Loading modules listed /etc/modules.autoload.d/kernel-2.6
Loading snd-intel8x0
Loading snd-ac97-codec
Loading nvidia
hibernate: [89] Executing RestoreKernelModprobe ...
hibernate: [85] Executing XHacksResumeHook2 ...
hibernate: [70] Executing ClockRestore ...
hibernate: [11] Executing XHacksResumeHook1 ...
hibernate: [01] Executing NoteLastResume ...
hibernate: [01] Executing LockFilePut ...
```

Als Anhang hab ich mal meine hibernate.conf mit bei...

Vielleicht kann mir ja jemand weiterhelfen...

Gruß

RedWing


----------



## Dennis Wronka (19. August 2005)

Ich hatte vor einer Weile auch mal mit den ACPI-Sleep-Modes rumgespielt, bin aber auch zu keinem zufriedenstellenden Ergebnis gekommen.
Wenn ich mich recht erinnere sah das so aus:
Suspend-to-RAM hat sich so verhalten wie Du es beim Hibernate-Script schilderst
Suspend-to-Disk hat wohl ein paar Sachen gesichert und dann den Rechner runtergefahren. Wenn ich die Box dann wieder angetreten hab kam ein ganz normaler Bootvorgang und es wurde nichts wiederhergestellt. Habe auch mit verschiedenen Parametern beim Lilo rumgespielt, hat aber nichts gebracht.
Ich weiss nicht mehr genau welche Kernel-Version das war, entweder eine recht fruehe 2.6er oder eine recht spaete 2.4er.
Ich tendiere aber eher zu 2.6, wenn ich mich auf eine Version festlegen sollte wuerde ich sagen nicht neuer als 2.6.4.


----------



## Dennis Wronka (19. August 2005)

So, mal ein Update.
Neues Post weil das alte zum einen schon lang ist, und es jetzt dann auch geklappt hat.

Ich hab mal eben meinen Kernel neu kompiliert, mit Sofware Suspension, aber ohne irgendwelche Patches, wie z.B. swsusp2.
Hab meine Swap-Partition auch als Default-Resume-Device angegeben.
Kernel gebootet, dann mittels *echo -n disk > /sys/power/state* zur Disk suspended.
Linux sichert dann den Status auf die Swap und schaltet den Rechner aus.
Rechner an, Kernel bootet und siehe da: Er holt sich die Daten wieder aus der Swap-Partition und alles ist wie es zuvor war. TCPDump laeuft weiter, KDE ist wieder da.
Problem erkannt, Gefahr gebannt. 

Ist also eigentlich kinderleicht.


----------



## RedWing (19. August 2005)

> Kernel gebootet, dann mittels echo -n disk > /sys/power/state zur Disk suspended.
> Linux sichert dann den Status auf die Swap und schaltet den Rechner aus.
> Rechner an, Kernel bootet und siehe da: Er holt sich die Daten wieder aus der Swap-Partition und alles ist wie es zuvor war. TCPDump laeuft weiter, KDE ist wieder da.
> Problem erkannt, Gefahr gebannt.
> ...



Genau das hab ich gestern auch ausproboiert nur das bei mir nach einem:

```
echo -n disk > /sys/power/state
```

folgendes kommt:

Logauszug:

```
Aug 18 20:07:22 network kernel: Stack: 00000202 c1510000 00000202 c1510000 c012e84f df06a810 dffa7f68 00000000
Aug 18 20:07:22 network kernel:        c1510028 e0c64aa0 de545260 dffa6000 c1510010 ffffffff ffffffff 00000001
Aug 18 20:07:22 network kernel:        00000000 c0119440 00010000 00000000 c1406e80 c1406520 00000000 00000000
Aug 18 20:07:22 network kernel: Call Trace:
Aug 18 20:07:22 network kernel:  [<c012e84f>] worker_thread+0x1cf/0x280
Aug 18 20:07:22 network kernel:  [<e0c64aa0>] ndis_irq_bh+0x0/0xe0 [ndiswrapper]
Aug 18 20:07:22 network kernel:  [<c0119440>] default_wake_function+0x0/0x20
Aug 18 20:07:22 network kernel:  [<c0119440>] default_wake_function+0x0/0x20
Aug 18 20:07:22 network kernel:  [<c0132e47>] kthread+0xe7/0xf0
Aug 18 20:07:22 network kernel:  [<c012e680>] worker_thread+0x0/0x280
Aug 18 20:07:22 network kernel:  [<c0132d60>] kthread+0x0/0xf0
Aug 18 20:07:22 network kernel:  [<c01014a5>] kernel_thread_helper+0x5/0x10
Aug 18 20:07:22 network kernel: Code: 9c 01 00 00 8b 42 04 89 88 e8 02 00 00 c7 42 1c 00 00 00 00 c2 04 00 90 56 b8 00 e0 ff ff 53 83 ec 08 8b 4c 24 14 21 e0 8b 59 34 <8b> 73 04 81 c6 80 02 00 00 f7 40 14 ff ff ff ef 75 0e 9c 58 c1
Aug 18 20:07:22 network kernel:  Some devices failed to suspend
```

Danach friert der Rechner ein und ich kann ihn nur noch reseten...

Gruß


RedWing


----------



## RedWing (19. August 2005)

> Ich hab mal eben meinen Kernel neu kompiliert, mit Sofware Suspension, aber ohne irgendwelche Patches, wie z.B. swsusp2.


Hab ich das richtig verstanden? Vielleicht sollt ichs auch mal ohne Patch probieren, aber wo hast du dann das
default resume Device angegeben?

Gruß

RedWing


----------



## Dennis Wronka (19. August 2005)

Der ndiswrapper scheint allgemein etwas Probleme mit ACPI zu haben.
Da ist es dann auch kein grosses Wunder, dass der die Sleep-Modes nicht versteht.
Du koenntest evtl. das Modul mal von Hand entfernen und dann in den ACPI-Sleep springen.

Was fuer einen Chip hat Deine WLAN-Karte? PCI oder USB?
Ich such grad noch nach dem richtigen Treiber fuer mein USB-WLAN-Gedaengel.



			
				RedWing hat gesagt.:
			
		

> Hab ich das richtig verstanden? Vielleicht sollt ichs auch mal ohne Patch probieren, aber wo hast du dann das
> default resume Device angegeben?


Das hast Du richtig verstanden.

Als ich Software Suspend aktiviert hab erschien darunter der Punkt fuer die Default Resume Partition.


----------



## RedWing (19. August 2005)

> Du koenntest evtl. das Modul mal von Hand entfernen und dann in den ACPI-Sleep springen.



Kann ich nicht, da ich kein module unload Support im Kernel hab, und der lässt sich dooferweise 
auch nicht einkompilieren, da es sonst bei einigen Modules wie snd-core snd-intel8x0 etc zu Problemen
kommt wenn er die Hardware beim bootvorgang coldpluggen möchte....



> Was fuer einen Chip hat Deine WLAN-Karte?



PCI

Gruß

RedWing


----------



## Dennis Wronka (19. August 2005)

Hmm, das ist alles eine recht unguenstige Kombination.

Wie sieht es denn damit aus den Module-unload-Support einzukompilieren, und die Problemmodule (wie Deinen Soundtreiber) statisch in den Kernel zu backen?

Denn in der aktuellen Konfiguration sehe ich grad keinen Weg Deinem Rechner beim Einschlafen zu helfen.


----------



## RedWing (19. August 2005)

Bin grad dabei...
Hoffe nur das danach mein Sound noch funktioniert weil hatte das glaube schonmal so und dann ging der 
sound nicht

Bericht folgt gleich...

Gruß

Redwing


----------



## Dennis Wronka (19. August 2005)

Viel Erfolg.

Eigentlich sollte es keine Probleme geben.
Ich hab eigentlich einen voll-statischen Kernel, aber mit Modul-Support fuer das ATI-Modul und ndiswrapper.


----------

