Subject: Re: Dell Latitude D600
To: None <port-i386@netbsd.org>
From: Alan Barrett <apb@cequrux.com>
List: port-i386
Date: 05/26/2003 18:03:02
On Fri, 23 May 2003, Daniel Carosone wrote:
> On Thu, May 22, 2003 at 06:49:29PM +0200, Alan Barrett wrote:
> > * USB works, modulo the problems I reported a few days ago
> > when a umass device sometimes fails to get a scsibus attached to it.
>
> Assuming you have the problem I saw once, it seems it fails to
> allocate a large enough contiguous memory range when the device
> attaches, but does so silently without a useful message.
I found the place in sys/dev/umass.c where a call to usbd_alloc_buffer()
could fail, and added a printf. Since then, the bug hasn't happened to
me.
> > * Non-ACPI kernel freezes up.
> >
> > If I run a kernel without ACPI support, then closing the lid of
> > the laptop causes a complete freeze. There's no panic message or
> > anything; the system just freezes up completely.
>
> Ouch. This is bad news for your other desires; see below.
>
> Does the BIOS offer any other acpi/apm related options that might
> alleviate the problem?
No, no options in the BIOS.
The problem turned out to be more complex. I have seen four different
behaviours, based on presence or absence of "acpi0 at mainbus0" and
"agp* at pchb?" in the kernel config. Here's a table summarising the
results from testing a whole lot of different kernels until I found the
important differences:
Kernel: A B C D
agp* at pchb?: no agp no agp with agp with agp
acpi0 at mainbus0: no acpi with acpi no acpi with acpi
------------- ------------- ------------- -------------
Power button: instant off ACPI event, instant off ACPI event,
sync, halt. sync, halt.
Suspend button: no action ACPI event no action ACPI event
Lid close/open: LCD turns off ACPI event system freeze system freeze
CRT/LCD button: Toggle between Toggle between system freeze system freeze
LCD and VGA LCD and VGA
Battery button: Displays BIOS no action system freeze system freeze
screen with
battery state
Kernel "A" is my favourite so far, because of the action on lid close.
Kernel "B" is a close second because I could theoretically use powerd to
customise what happens when the power or suspend buttons are pressed.
Any kernel with "agp* at pchb?" seems to be bad.
> > * Can't use LCD and external monitor simultaneously.
> >
> > Pressing the "CRT/LCD" button (actually "Fn"+"F8") switches between
> > the internal LCD and the external VGA monitor. I can't find a way of
> > having them both turned on simultaneously.
>
> This is something Xfree86 will need to deal with.
Hmm. Ideally, I'd like it to work in any display mode, including text.
My previous laptop used to have a 3-way cycle (LCD/VGA/both) and it just
worked, invisible to NetBSD. But I'd settle for something that worked
only when X was running.
> > * Can't suspend/hibernate.
>
> NetBSD's ACPI support is still new, and doesn't yet extend to
> sleep/hibernation stuff. The only way to that with present code
> is with help from the BIOS under the APM framework. Newer laptops
> might no longer have this capability, but it's worth checking.
The BIOS doesn't offer any way to enable or disable APM or ACPI. A
NetBSD kernel configured with "apm0 at mainbus0" fails to find any APM
support in the machine.
--apb (Alan Barrett)