IBM T42p, ACPI/APM, hibernation, and S4BIOS problem/question.
George Hartzell
hartzell at kestrel.alerce.com
Tue Sep 7 16:38:33 PDT 2004
Hi all,
I'm having trouble getting hibernation to work on a new IBM T42p
laptop. I know that I need to create a hibernation partition/file,
and have tried a variety of methods (see below). Keven Oberman has
been a great help with this.
I've used both the 5.2.1 disc 2 live CD and the 5.3BETA3 disc 2 live
CD. I've been booting from that CD, choosing Fixit, and running from
the CD.
I've upgraded the bios to the current 3.08a and the embedded
controller software to version 3.03.
The machine came equipped with Windows XP, in the first partition, and
IBM's recovery and repair program in a second partition.
I installed Acronis' Disk Director (but not the multiboot manager) and
used it to shrink the Windows XP partition and move it about 2 GB from
the front of the disk.
I used three different techniques to try to create the necessary
hibernation space:
1) lphdisk (0.9.1)
I used Disk Director from windows to create a primary partition in
the 2-ish GB hole at the front of the disk, and give it partition
type 0xa0.
I then booted a BG-rescue CD
http://omnibus.uni-freiburg.de/~giannone/rescue/current/
and used its version of lphdisk to create a hibernation
partition. It was extremely slow, but completed successfully.
Results:
a) If I boot with acpi enabled (just let it go), and start a
fixit shell:
hw.acpi.s4bios is 0
The FnF12 keypair does nothing.
acpiconf -s 4 shutsdown the machine very quickly, pressing
the power button reboots it from scratch.
if I use sysctl -w to set hw.acpi.s4bios=1
The FnF12 keypair does nothing
acpiconf -s 4 makes the moon blink and the machine appears
wedged. I have to hold the power button down for 5-8
seconds to get it to reboot.
b) If I choose option 2 in the freebsd boot, and boot w/out
acpi, then:
hw.acpi.s4bios doesn't exist (phew!)
FnF12 starts the moon symbol blinking and lights up the disk
light. Eventually I get a screen with:
Phoenix NoteBIOS v4.0 Save To Disk Manager
and progress bars that are familiar to me from hibernating
my current Sony PCG-Z505JE. Eventually it powers down.
Pressing the power button brings things back to life,
although attempts to access the disk (e.g. ls) fail with
Input/output error. exiting that shell and starting a new
fixit shell without rebooting makes ls work again.
2) IBM's PHDISK program and a hibernation partition
I used Disk Director from windows to delete the partition above,
and then create a new primary partition in the 2-ish GB hole at
the front of the disk, and give it partition type 0xa0.
I then created a bootable floppy using IBM's tool:
http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-4PESMK
And booted with the resulting disk. It turns out to be
PHDISK 4.5 -- Phoenix NoteBIOS 4.0(tm)
And gives three choices:
1 Reformat existing partition
2 Delete existing partition
3 Reboot
I choose option 1 and let it format the partition created by Disk
Director.
Results:
a) If I boot with acpi enabled (just let it go), and start a
fixit shell:
hw.acpi.s4bios is 0
The FnF12 keypair does nothing.
acpiconf -s 4 shutsdown the machine very quickly, pressing
the power button reboots it from scratch.
if I use sysctl -w to set hw.acpi.s4bios=1
The FnF12 keypair does nothing
acpiconf -s 4 makes the moon blink and the machine appears
wedged. I have to hold the power button down for 5-8
seconds to get it to reboot.
(same as the lphdisk result)
b) If I choose option 2 in the freebsd boot, and boot w/out
acpi, then:
The FnF12 keypair does nothing.
acpiconf -s 4 complains about /dev/acpi no such... (phew).
3) IBM's PHDISK program and a hibernation *file*
I used Disk Director from windows to delete the partition above,
and then create a new primary partition in the 2-ish GB hole at
the front of the disk and created a FAT16 filesystem there.
I then created a bootable floppy using IBM's tool:
http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-4PESMK
And booted with the resulting disk. It turns out to be
PHDISK 4.5 -- Phoenix NoteBIOS 4.0(tm)
And one of the choices (I didn't copy down the details...) was to
create a hibernation file. I did that, and it eventually finished.
Results:
a) If I boot with acpi enabled (just let it go), and start a
fixit shell:
The results are identical to the other acpi-enabled results
described above.
b) If I boot w/out ACPI (option 2 in the boot menu):
FnF12 suspends the machine as described above.
Interestingly, instead of displaying the Phoenix NoteBIOS
progress bars, it displays a fancy IBM graphic. Otherwise,
it's identical.
I did not notice whether ls worked in the re-awakened system
or not.
Discussion:
There was a page at the IBM site that offered a tool for building
hibernation files for the T42p that I can no longer find. It
mentioned that, even though the application would offer to build a
hibernation *partition*, that would not work and one should only
use a hibernation *file*. That jives with my results above.
In the "old" days, I used lphdisk to create a hibernation partition
for my Sony Vaio PCG-Z505JE using APM. Either the bios, or
lphdisk, or both were picky, and the hibernation partition needed
to be in the fourth slot in the partition table. I tried
recreating that on my new IBM w/ no success.
Plea for help:
I'm pretty sure that I've created hibernation partitions/files that
please the BIOS, since it's willing to use them when I boot w/out
ACPI.
I'm pretty sure that the s4bios sysctl variable is actually
read-only, even though the code in acpi.c lets me set it. At
least, setting it doesn't cause anything good to happen....
Am I wrong to expect a fixit session to be able to suspend in ACPI,
even though it can w/out ACPI?
Should I downgrade the BIOS? I upgraded because it claimed to fix
a bug in Linux hibernation....
(Fix) (Linux) Hibernation function does not work correctly
under the partition environment created by lphdisk.
Is there anyone out there that has hibernation working on a
recent/comparable thinkpad who can make a suggestion?
Thanks,
g.
More information about the freebsd-current
mailing list