For hibernation support on IBM ThinkPads,
try "tpctl". Search Google for it and you will find the pointer.
I use it with cardctl. With proper kernel config, everything works perfectly.
For hibernation support on Desktop, try swsusp. You don't need APM bios to use this.
It stores the machine state into swap, and kernel loads it and resumes the system when the system boots up.
Hope this helps.
Chantage.