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