FreeBSD 5.1-RELEASE and IBM Thinkpad A31
Darryl Okahata
darrylo at soco.agilent.com
Mon Jun 16 17:47:37 PDT 2003
For the archives, here are my (thus far, brief) experiences with
FreeBSD-5.1-RELEASE and an IBM Thinkpad A31 with the latest (June 6)
BIOS.
[ WARNING: BACKUP YOUR HARD DISK BEFORE INSTALLING FREEBSD. IF YOU HAVE
A WINDOWS PARTITION, YOU DEFINITELY WANT TO HAVE A COMPLETE AND TESTED
BACKUP OF IT BEFORE YOU TRY TO INSTALL FREEBSD. THIS IS ALSO TRUE OF
ANY EXISTING FREEBSD PARTITION(S) THAT CONTAINS IMPORTANT DATA. ]
Summary: ACPI is utterly broken, although apm works, with the slight
exception of X11. Although X11 seems to work, suspending with
X11 active still results in a corrupted display at resume,
although the usual workarounds do work to resuscitate the
display. The kernel does need to be recompiled, as GENERIC can
cause problems. The build-in networking works, although a
kernel hint must be used to prevent the kernel from crashing.
Sound has not yet been tested.
Details:
[ WARNING: BACKUP YOUR HARD DISK BEFORE INSTALLING FREEBSD. IF YOU HAVE
A WINDOWS PARTITION, YOU DEFINITELY WANT TO HAVE A COMPLETE AND TESTED
BACKUP OF IT BEFORE YOU TRY TO INSTALL FREEBSD. THIS IS ALSO TRUE OF
ANY EXISTING FREEBSD PARTITION(S) THAT CONTAINS IMPORTANT DATA. ]
* ACPI really is utterly broken on the A31. If you boot with ACPI, you
get a lovely "integer divide fault while in kernel mode" panic during
probing. To boot (or even install from the CDROM), you've got to
disable ACPI in the kernel (fortunately, the new 5.1 bootup procedure
allows you to easily disable it, but only for the current boot). To
use 5.1, you've got to disable ACPI.
* APM does seem to work, although I have not turned my laptop off and on
enough to tell if it's reliable (with 5.0-RELEASE, I had occasional
problems where my laptop would sometimes lock up at resume).
[ For those people, like me, who like to install software first and
read documentation/mailing lists later, note that the procedure for
enabling APM in 5.1-RELEASE has changed slightly since 5.0-RELEASE.
In addition to disabling ACPI and enabling APM in
/boot/device.hints, you must also add a line like the following into
/boot/loader.conf:
apm_load="YES"
If you don't, APM will not be loaded. ]
HOWEVER, if you use X11, you must also rebuild your kernel with the
option:
options SC_NO_SUSPEND_VTYSWITCH
If you do not, and accidentally suspend/hibernate the laptop while in
X11, FreeBSD will crash.
* While X11 (XFree86 4.3) does appear to work, suspending from X11 is
problematic.
First of all, the above-mentioned kernel parameter must be used to
build a kernel that does not crash if you suspend from X11.
Second, if you do suspend from X11, the display is trashed/corrupted
at resume time. The workaround for this is to switch to a VTY before
suspending, and then (manually) switch back to X11 after resuming. If
you forget to switch before suspending, you can bring the display back
to life after resuming by:
1. Switch to a VTY. After resuming, the display will be
corrupted/trashed, and so it may be confusing to do. Just hit
something like Ctrl-Alt-F1, and hope that you switch.
[ DO NOT disable VTY switching in your XF86Config, or you will be
unable to use this workaround. ]
2. Press Fn-F3 twice. On the A31, this turns the LCD display off and
on, which brings the display back to life.
* With the defaults, using the built-in fxp LAN device causes FreeBSD to
(eventually) crash. To fix this, add the following line to
/boot/device.hints and reboot (and note that, unlike the other
parameters in this file, there is *NO* "hint." at the beginning):
hw.pci.allow_unsupported_io_range="1"
(Yes, this does mean that you should probably defer LAN configuration
until after you have FreeBSD installed, although advanced users can,
of course, get around this by manually setting this parameter from the
loader.)
* Hibernation seems to work (but see WARNING below), but you've got to
manually create the hibernation partition using the tool from IBM's
website:
http://www-3.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-4PESMK
However, as this is a bootable diskette, I used it to create a
bootable CDROM (the floppy on the A31 is optional).
WARNING: I do not know if this is a problem with the hibernation
utility, with FreeBSD, or even if this is an actual problem, but the
resulting partition table after installing FreeBSD does not seem to be
quite "right"; while the LBA offsets are correct, Powerquest's Drive
Image 2002 (which is what I use to do windows backups) thinks that the
CHS values are incorrect, and offers to "correct" them. If you let it
"correct" the value for the windows partition, the partition ends up
being corrupted.
[ Why it's paying such close attention to CHS values on a 40GB disk is
beyond me. ]
I managed to trash my windows partition this way. Fortunately, I had
a good backup. ;-) However, I did end up blowing away the IBM
emergency recovery partition (which I didn't really need) during the
restore process. After recreating the hibernation partition, and
reinstalling FreeBSD for a second time, drive image was a bit happier
(it only wanted to screw with the hibernation and FreeBSD partitions,
which seems to make things much happier).
--
Darryl Okahata
darrylo at soco.agilent.com
DISCLAIMER: this message is the author's personal opinion and does not
constitute the support, opinion, or policy of Agilent Technologies, or
of the little green men that have been following him all day.
More information about the freebsd-mobile
mailing list