Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Jan 2010 08:56:44 +0100
From:      Guido van Rooij <guido@gvr.org>
To:        Nate Lawson <nate@root.org>
Cc:        freebsd-acpi@freebsd.org
Subject:   Re: ACPI CMBAT notify's never reach devd?
Message-ID:  <20100114075644.GA18572@gvr.gvr.org>
In-Reply-To: <4B4E799E.2030405@root.org>
References:  <20100113204228.GA8768@gvr.gvr.org> <4B4E799E.2030405@root.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Jan 13, 2010 at 05:55:42PM -0800, Nate Lawson wrote:
> Guido van Rooij wrote:
> > I am trying to have a script shutdown a system on low battery levels and
> > I'm using this script:
> > http://www.chruetertee.ch/files/download/battery
> > 
> > What I see is that the script is only called when the state changes
> > (e.g. when the bateries start charging). 
> > Reading the script, it seems to imply that notify's should be sent
> > regularly when the level (hw.acpi.battery.life) changes.
> > However that does not happen.
> > 
> > Also, when batteries run out, the state does not change to LOW (I waited
> > to:
> > hw.acpi.battery.life: 4
> > hw.acpi.battery.time: 3
> > hw.acpi.battery.state: 1
> > 
> > I am not sure if this is a bug in the acpi implementation or in my laptop's
> > bios (the dumped DSDT indeed only seems to send SB.BAT noities in the PWRE
> > method). I read on http://www.columbia.edu/~ariel/acpi/acpi_howto.txt:
> >    If your battery doesn't support alarms, the ACPI specification requires the
> >    OS to poll the battery to check its remaining capacity. It appears that
> >    Linux  does  not  yet  do  this. In this case, it's best to run a user
> >    application that can check your battery status and take appropriate action.
> > 
> > Can anyone tell me what I need to do to use the script succesfully?
> > My system: Dell D820 running 8.0-release.
> 
> Most battery systems don't generate the notifies on level changes. So
> our ACPI battery implementation itself is polled. You should probably
> just run a cron job that checks the level.

That can be done of course, but devd seems a better place.

> 
> Perhaps we could add a low and high mark to the kernel code,
> configurable by the user. It would be checked by the cmbat polling code
> and generate an artificial notify to devd if there was a match.
> 

Can you tell me which function in acpi_cmbat is used for polling,
as it seems to me thee is no regular polling. There is a define
CMBAT_POLLRATE but it is never used.

-Guido



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100114075644.GA18572>