Aufwachproblem nach Hibernate

04/07/2013 - 18:44 von Christoph Mehdorn Weber | Report spam
Hallo!

Zur Abwechslung habe ich auch mal ein ernstes[0] Hibernate-Problem,
bei dem ich auf Anhieb nicht weiterkomme. Ich habe hier ein
Fujitsu LifeBook B110, das frisch mit Debian Wheezy installiert
wurde, und zwar, indem ich die Platte in einem anderen Rechner
manuell partioniert, mit "cdebootstrap --flavour=minimal" befüllt
und um Kernel und LILO erweitert habe.

Installiert ist das Paket "hibernate" samt "hdparm" aus den
"Recommends", "uswsusp" und "vbetool" habe ich mir gespart. Der
beteiligte Kernel ist 3.2.0-4-486.

Aber zum Problem. Der Rechner speichert beim Hibernate seinen
Zustand und geht aus, wie man das erwarten würde. Beim
Wiederanfahren versucht er das Image zu laden und bricht in
gefühlt mindesten 9 von 10 Fàllen sofort bei 0% ab:

[..]
| [ 10.816249] sd 0:0:0:0: Attached scsi generic sg0 type 0
| [ 11.924378] PM: Starting manual resume from disk
| [ 11.924522] PM: Hibernation image partition 8:1 present
| [ 11.924549] PM: Looking for hibernation image.
| [ 11.926758] PM: Image signature found, resuming
| [ 11.940619] PM: Marking nosave pages: 000000000009f000 - 0000000000100000
| [ 11.940670] PM: Basic memory bitmaps created
| [ 11.940692] PM: Preparing processes for restore.
| [ 11.940713] Freezing user space processes ... (elapsed 0.01 seconds) done.
| [ 11.956324] PM: Loading hibernation image.
| [ 12.097796] PM: Using 1 thread(s) for decompression.
| [ 12.097817] PM: Loading and decompressing image data (7400 pages) ... \x08\x08\x08\x08 0%
| [ 13.794187] resume: page allocation failure: order:0, mode:0x8020
| [ 13.794340] Pid: 134, comm: resume Not tainted 3.2.0-4-486 #1 Debian 3.2.46-1
| [ 13.794441] Call Trace:
| [ 13.794559] [<c107ac51>] ? warn_alloc_failed+0xc8/0xd9
| [ 13.794673] [<c107c989>] ? __alloc_pages_nodemask+0x5bc/0x637
| [ 13.794787] [<c107ca4c>] ? __get_free_pages+0xc/0x19
| [ 13.794916] [<c104c5bd>] ? snapshot_write_next+0x434/0x56c
| [ 13.795039] [<c104cf02>] ? load_image_lzo+0x637/0x81f
| [ 13.795164] [<c1036367>] ? finish_wait+0x3e/0x3e
| [ 13.795268] [<c104dd2f>] ? swsusp_read+0x250/0x283
| [ 13.795374] [<c104a9d8>] ? software_resume+0x19f/0x231
| [ 13.795480] [<c104aae7>] ? resume_store+0x7d/0x8a
| [ 13.795581] [<c104aa6a>] ? software_resume+0x231/0x231
| [ 13.795699] [<c112faf3>] ? kobj_attr_store+0x18/0x1c
| [ 13.795816] [<c10e4022>] ? sysfs_write_file+0xb0/0xdd
| [ 13.795921] [<c10e3f72>] ? sysfs_poll+0x60/0x60
| [ 13.796033] [<c10a4656>] ? vfs_write+0x83/0xd2
| [ 13.796238] [<c10a4812>] ? sys_write+0x3d/0x61
| [ 13.796372] [<c12843bc>] ? syscall_call+0x7/0xb
| [ 13.796459] Mem-Info:
| [ 13.796522] DMA per-cpu:
| [ 13.796593] CPU 0: hi: 0, btch: 1 usd: 0
| [ 13.796684] Normal per-cpu:
| [ 13.796768] CPU 0: hi: 18, btch: 3 usd: 2
| [ 13.796900] active_anon:1247 inactive_anon:6 isolated_anon:0
| [ 13.796920] active_file:750 inactive_file:5735 isolated_file:0
| [ 13.796941] unevictable:0 dirty:0 writeback:0 unstable:0
| [ 13.796961] free:198 slab_reclaimable:393 slab_unreclaimable:556
| [ 13.796982] mapped:254 shmem:8 pagetables:127 bounce:0
| [ 13.797418] DMA free:400kB min:200kB low:248kB high:300kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15804kB mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB slab_reclaimable:0kB slab_unreclaimable:0kB kernel_stack:0kB pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
| [ 13.797791] lowmem_reserve[]: 0 79 79 79
| [ 13.798097] Normal free:392kB min:1040kB low:1300kB high:1560kB active_anon:4988kB inactive_anon:24kB active_file:3000kB inactive_file:22940kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:81200kB mlocked:0kB dirty:0kB writeback:0kB mapped:1016kB shmem:32kB slab_reclaimable:1572kB slab_unreclaimable:2224kB kernel_stack:480kB pagetables:508kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no
| [ 13.798492] lowmem_reserve[]: 0 0 0 0
| [ 13.798737] DMA: 0*4kB 0*8kB 1*16kB 0*32kB 0*64kB 1*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 400kB
| [ 13.799297] Normal: 0*4kB 1*8kB 0*16kB 0*32kB 0*64kB 1*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 392kB
| [ 13.799860] 6493 total pagecache pages
| [ 13.799939] 0 pages in swap cache
| [ 13.800102] Swap cache stats: add 0, delete 0, find 0/0
| [ 13.800205] Free swap = 0kB
| [ 13.800281] Total swap = 0kB
| [ 13.809439] 24540 pages RAM
| [ 13.809529] 0 pages HighMem
| [ 13.809606] 1434 pages reserved
| [ 13.809682] 3747 pages shared
| [ 13.809758] 22552 pages non-shared
| [ 13.842684]
| [ 13.842788] PM: Read 29600 kbytes in 1.74 seconds (17.01 MB/s)
| [ 13.861975] PM: Error -12 resuming
| [ 13.862420] PM: Failed to load hibernation image, recovering.
| [ 13.868863] Restarting tasks ... done.
| [ 13.876122] PM: Basic memory bitmaps freed
| [ 13.879935] PM: Hibernation image not present or could not be loaded.
| [ 14.041034] EXT3-fs (sda2): recovery required on readonly filesystem
[..]

Weder zu "resume: page allocation failure: order:0, mode:0x8020"
noch zu "PM: Error -12 resuming" finde ich im Netz sinnvolle
Vorschlaege.

Ich habe mir vom aktuellen Linux 3.2.48 mal die Sourcen gezogen
und konnte die Quelle fuer Letzteres auf kernel/power/swap.c
eingrenzen. Allerdings gibt es da mehrere Stellen, an denen
"error" gesetzt wird, bevor die Ausgabe erfolgt, und das war mir
etwas unuebersichtlich, um es nachzuverfolgen.

Daher habe ich es mit Documentation/power/basic-pm-debugging.txt
versucht und dachte zunaechst, dass es ein Problem mit "disk" auf
"platform" ist, da es mit "shutdown" auf Anhieb funktionierte.
Aber leider auch nur ein einziges Mal.

Ich habe dann mit "pm_test" alle Varianten durchprobiert,
jeweils mit "platform" und "shutdown" ausprobiert und es hat immer
gut funktioniert. Kaum schalte ich "pm_test" ab, damit er wirklich
komplett abschaltet und wieder bootet, erhalte ich wieder obigen
Fehler.

Naheliegende Idee war dann, dass mein Swap vielleicht kaputt
ist, aber ein "mkswap" konnte das Problem nicht heilen.


Mit "init=/bin/bash" habe ich jetzt noch nicht getestet und
werde das auch nicht tun, da das System gerade zu weit weg ist
und ich nach dem Reboot ohne Netz nicht weiterkommen kann.

Aber falls schon jemand Ideen hat, was ich noch probieren
koennte, waere mir das recht.


Alternativ koennte ich einen Tip fuer einen PDF-Reader
gebrauchen, der sich merkt, an welcher Stelle einer Datei er
zuletzt beendet wurde und beim Laden derselben Datei wieder
dorthin springt. Er sollte aber nicht wesentlich ressourcen-
hungriger sein als xpdf, da ich mit den 233MHz und 128MB RAM
irgendwie auskommen muss. (Ich will das System nutzen, um Ebooks
zu lesen, von denen ich einige als Textdateien und andere nur als
PDF habe; vim merkt sich die Position problemlos, xpdf kann man
das zwar anbauen, aber standardmaessig kann es das nicht.)

Christoph

[0] Ich habe einen Rechner, der nach dem Poweroff in seltenen
Fàllen spontan wieder anspringt, aber das habe ich mit einer
Schleife um Hibernate gelöst, die guckt, ob er weniger als
zwei Minuten weg war und gleich wieder einschlàfert. Zweimal
in Folge trat das Anspring-Problem bisher nicht auf.

So fanatisch, dass ich das Fruehstueck verpasse, bin
ich nicht. Es sei denn, mein crond laeuft nicht.
(Henry Leyh)
 

Lesen sie die antworten

#1 Lars Behrens
04/07/2013 - 20:23 | Warnen spam
Am 04.07.2013 18:44, schrieb Christoph 'Mehdorn' Weber:

Aber falls schon jemand Ideen hat, was ich noch probieren
koennte, waere mir das recht.



Nur zur Sicherheit: in /etc/initramfs-tools/conf.d/resume ist die
richtige UUID eingetragen?

Cheerz,
Lars

Ähnliche fragen