[ltp] Re: T30 Hibernate help needed!!

Hector Socas Navarro linux-thinkpad@linux-thinkpad.org
Thu, 04 Sep 2003 10:52:55 -0600


Ok, I'm almost there. I hope with a little bit more help I can get this 
thing working.

I'm trying two different approaches in parallel: the BIOS hardware 
hibernation and the software suspend swsusp. In both cases, I come to a 
point where I can suspend but then the system freezes after restoring. 
Here's the details:

1) BIOS suspend-to-disk feature: I'm using the windows xp recovery 
partition /dev/hda2 for the suspend. I don't have any critical data in 
the windows partitions so I don't see a need for it. I changed the 
partition type with fdisk and ran mkdosfs on it. I created the 
save2dsk.bin file in this partition using the tphdisk.c utility. This 
didn't work before on my /dev/hda8 partition, which I created 
specifically for this purpose. I still don't know the reason but I 
suspect you need a primary partition (which hda2 is), and not a logical 
one (like hda8) for hibernation. So, this is what my partition table 
looks like right now:

Command (m for help): p

Disk /dev/hda: 240 heads, 63 sectors, 7752 cylinders
Units = cylinders of 15120 * 512 bytes

    Device Boot    Start       End    Blocks   Id  System
/dev/hda1   *         1      1428  10795648+   7  HPFS/NTFS
/dev/hda2          7525      7752   1723680    6  FAT16
/dev/hda3          1429      7524  46085760    f  Win95 Ext'd (LBA)
/dev/hda5          1429      3525  15853288+   c  Win95 FAT32 (LBA)
/dev/hda6          3734      7320  27117688+  83  Linux
/dev/hda7          7321      7524   1542208+  82  Linux swap
/dev/hda8          3526      3733   1572448+   6  FAT16

Setting the hda2 type to 6 or 16 doesn't seem to make any difference. 
Also, I don't seem to need the hibernation partition mounted.

Ok, so here's the problem. If I set the machine to hibernate (with 
Fn+F12) while in X mode, I get the progress screen with the three bars 
and the system shuts down upon completion. Now when I turn it back on, 
it restores the saved state but when the screen comes up it is slightly 
corrupted at the top of the display and the computer is frozen. Trying 
to switch to text mode (Ctl+Alt+F1 - F6) doesn't work. I have to do a 
hard reboot. If I first switch to text mode and then hibernate, the 
system is restored back to the text screen and it seems to be working 
just fine. However, when I switch back to graphics mode (Ctl+Alt+F7), 
again the top few lines of the screen are corrupted and the computer 
freezes.

Any ideas on why this corruption happens? I tried increasing the size of 
the save2dsk.bin file (tphdisk 1600 > save2dsk.bin) with the same result 
(I have 1Gb memory).

Thanks!

2) swsusp:

I couldn't patch properly my old 2.4.20-19.7 or the new 2.4.22 kernel 
versions, but as the doc say the current swsusp is targeted for 2.4.21 
so I downloaded 2.4.21 and compiled it. Patching went fine (I only 
applied the swsusp patch, none of the others) but while building the 
kernel it complained about some SCSI driver. I knew SCSI is not 
supported by swsusp, so I went to the .config file and commented out 
each and every line with the SCSI string in it (there's quite a few of 
them, by the way). After doing this I could build the patched kernel and 
the modules with no problem.

When I boot to this kernel, I can use shutdown+z or the hibernate script 
provided with swsusp. Both commands seem to put the system into 
hibernation just fine. Then when I restore my machine, whether I was in 
text or graphics mode, my screen is completely corrupted (not just the 
top few lines as in the previous case) and the computer is frozen.

Any suggestions?

Thanks to all for your help getting me this far.

Hector
-- 
                       Hector Socas-Navarro
                     High Altitude Observatory
           3450 Mitchell Lane, Boulder CO 80307-3000 (USA)
Phone: 303 497 1543, Fax: 303 497 1589, E-mail: navarro@hao.ucar.edu