Fn-F12: Hibernate an IBM Thinkpad T20 laptop
ArticleCategory:
Hardware
AuthorImage:[Here we need a little image from you]
TranslationInfo:[Author + translation history. mailto: or
http://homepage]
original in en Jan Alonzo
AboutTheAuthor:[A small biography about the author]
Jan runs Debian Linux on his IBM T20
Abstract:
This article explains how to make Hibernate (suspend-to-disk) work on a IBM Thinkpad T20
with no windows installed. The solution presented here may also
work for other Thinkpads with a Phoenix BIOS but I have
tested it only on a T20.
ArticleIllustration:
ArticleBody:
Software Requirements
You need the following programs installed for hibernate to
work:
fdisk usually comes with your default Linux install. cfdisk
usually comes with a Debian
default install. tphdisk was written by Andrew Tridgell for his
Thinkpad T20.
Creating the DOS Partition
First you have to make sure that you have a spare
PRIMARY block in your device. This is important as
Thinkpads only hibernate on PRIMARY partitions, not on extended
partitions. Been there, done that.
The rule of thumb is: "size of RAM + size of graphic
adapter's RAM + extra MBs for safety". If you are planning to
upgrade your RAM soon, make sure you take into consideration
the size of your future RAM, or else you have to recreate the
partition again.
Once you have created the partition, set it to type "Hidden
Win95 (FAT16) LBA". The partition code is "1E".
RAM: 128 MB
VGA RAM: 8 MB
Hibernation partion: 150 MB (for safety)
It is up to you how much extra you want to put in the
partition. If you're having problems, kindly refer to the
Troubleshooting section.
Now Reboot your laptop.
Formatting the partition
mkdosfs is part of the dosfstools package.
As root:
$ mkdosfs /dev/hdaX
... where hdaX is the partition you just created above
(Creating the DOS Partition section).
Now mount the partition:
$ mount /dev/hdaX /mnt/hibernate
Creating the hibernation file
- Get tphdisk at http://samba.org/ftp/unpacked/junkcode/tphdisk.c
or local copy: tphdisk.tar.gz
- Compile tphdisk.
- Create the file "save2dsk.bin".
save2dsk.bin is the filename of the
hibernation file. No, it's not an optional filename.
$ gcc -o tphdisk tphdisk.c
$ ./tphdisk N > /mnt/hibernate/save2dsk.bin
... where:
N = size of the file. See rule of thumb
above.
Reboot your laptop.
Sound
It is a known problem that the cs46xx sound card driver of the
T20 does not re-initialize the hardware registers after a
suspend or hibernate operation. In other words Linux will be
fully operational but you will not hear any sound after a
suspend to ram or suspend to disk. A work around is to run
manually "/etc/init.d/alsasound restart" if you care about
sound.
See also http://panopticon.csustan.edu/thood/tp600lnx.htm#secsnd
for more suggestions on how to solve this "sound silent
problem".
Testing
Your screen should blank and after a couple of seconds, the
Phoenix BIOS hibernate utility should come up and start dumping
the contents of your RAM to your newly created hibernation
file:
Troubleshooting
- While creating the hibernation file, I received an error
says "Write Failed"!
- Make sure you put enough space in your partition. Try to
make it bigger and see if that works.
- Your thinkpad should be using Phoenix BIOS.
- When I tried to hibernate, the system just hangs!
- Make sure your hibernate partition is mounted
- Your did something wrong! Backtrack and make sure you got
everything alright.
- "System is invalid"!
- You formatted the partition with the wrong filesystem.
(See Creating the DOS Partition above)
- The partition is an extended (logical) partition. I told
you it has to be PRIMARY.