[ltp] T21 hibernation - Partial Success

Bret Comstock Waldow linux-thinkpad@www.bm-soft.com
Wed, 17 Jul 2002 12:55:20 +1200


I say partial as there are subsystems to work out yet, but the basic 
hibernation works fine.

Here's what I did, and what happens:

My partition table (with notes to the right):

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

   Device Boot    Start       End    Blocks   Id  System
/dev/hda1             1       431   3258328+   b  Win95 FAT32         <= Windows 2k
/dev/hda2   *       432       577   1103760   1b  Hidden Win95 FAT32  <= Windows 98
/dev/hda3           578      2584  15172920    f  Win95 Ext'd (LBA)
/dev/hda5           578      1254   5118088+  83  Linux               <= /
/dev/hda6          1255      1324    529168+  82  Linux swap
/dev/hda7          1325      1469   1096168+  83  Linux               <= /home
/dev/hda8          1470      2584   8429368+   b  Win95 FAT32         <= shared windows data partition

At first, I went into W$k, and turned off hibernation support with the 
Thinkpad Configuration utility.  This removed the hiberfil.sys file from 
C:\, presumably freeing up disk space.  I set /dev/hda1 visible and 
bootable.  I booted with the stndalhd diskette, and it informed me there 
wasn't sufficient space for a hibernate file.

I defragmented C:\ in W$k, and received the same message.  I considered 
using PartitionMagic to increase the size of the C:\ partition 
(/dev/hda1) to be certain that there was sufficient contiguous space for 
the hibernate file, but I first tried Fn+F12 in W$k.  Remember, this is 
after switching off hibernate support.  W$k hibernated - recreating it's 
own version of the hibernate file (hiberfil.sys) and ignoring the one 
created by stndalhd (sav2dsk.bin).  So, it was obvious I wasn't going to 
get W$k to use the common hibernation file - it's programmed to use it's 
own system.  A shame, as I have 512M RAM, and that's a Gig total 
dedicated to hibernation.

I used PartitionMagic to increase the Windows 98 partition (/dev/hda2) 
into the space vacated by deleting the /dev/hda4 Thinkpad Hibernation 
partition, since it wasn't going to be used.  The new space was 
contiguous therefore, and stndalhd wrote a hibernation file with no drama.

Linux uses the new hibernation file.  I've tried Fn+F12 twice, once from 
my user KDE desktop, and it works in both instances, with a full battery 
AND with the AC plugged in.  (I removed the battery while hibernated, 
and pulled the AC, to check it's not some automatic fallover to suspend, 
and it's hibernating all right - it recovers after power is restored.)

The network does not survive the cycle, and I haven't investigated about 
PCMCIA or sound yet - I'll get to those.

I also haven't tried hibernating the Windows 98 install yet.  I'll get 
to that in a bit.

Further bulletins as events warrant  .... 8-)
Bret

T21 2647-8AU
Coppermine PIII 800
SuSE 7.3 Pro with custom 2.4.16 kernel (based on "SuSE Certified" 2.4.16)
Partitions as listed above.  Note that LILO flips hda1 and hda2 visible 
and invisible so they don't conflict with each other when each is 
booted.  The bootable flag maybe significant, but I don't believe the 
visibility is relevant, except when creating the hibernation file.
General & APM settings in my custom kernel (edited - items not set 
should be assumed off and I'm still experimenting with this):

CONFIG_X86=y
CONFIG_ISA=y
CONFIG_UID16=y

# Code maturity level options
CONFIG_EXPERIMENTAL=y

# Loadable module support
CONFIG_MODULES=y
# CONFIG_MODVERSIONS is not set
CONFIG_KMOD=y

# Processor type and features
CONFIG_MPENTIUMIII=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_L1_CACHE_SHIFT=5
CONFIG_X86_TSC=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_PGE=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_MICROCODE=m
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
CONFIG_HIGHMEM4G=y
CONFIG_HIGHMEM=y
CONFIG_HIGHIO=y
CONFIG_MTRR=y
CONFIG_X86_UP_APIC=y
CONFIG_X86_LOCAL_APIC=y

# General setup
CONFIG_NET=y
CONFIG_PCI=y
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_EISA=y
CONFIG_HOTPLUG=y

# PCMCIA/CardBus support
CONFIG_PCMCIA=m
CONFIG_CARDBUS=y
CONFIG_I82092=y
CONFIG_I82365=y
CONFIG_TCIC=y

# PCI Hotplug Support
CONFIG_HOTPLUG_PCI=m
CONFIG_SYSVIPC=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_SYSCTL=y
CONFIG_KCORE_ELF=y
CONFIG_BINFMT_AOUT=m
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=m
CONFIG_PM=y
CONFIG_APM=y
# CONFIG_APM_IGNORE_USER_SUSPEND is not set
CONFIG_APM_DO_ENABLE=y
# CONFIG_APM_CPU_IDLE is not set
CONFIG_APM_DISPLAY_BLANK=y
# CONFIG_APM_RTC_IS_GMT is not set
CONFIG_APM_ALLOW_INTS=y
# CONFIG_SISBUG is not set




----- The Linux ThinkPad mailing list -----
The linux-thinkpad mailing list home page is at:
http://www.bm-soft.com/~bm/tp_mailing.html