acpi shows wrong battery state (fwd)
Jung-uk Kim
jkim at FreeBSD.org
Thu Sep 2 23:27:02 UTC 2010
On Thursday 02 September 2010 06:02 pm, kuba wrote:
> > Take a look at these tunables:
> > debug.acpi.ec.timeout: 750
> > debug.acpi.ec.polled: 0
> > debug.acpi.ec.burst: 0
> >
> > Perhaps increasing timeout would help?
>
> Increasing timeout didn't help at all :(
> Is there a chance that in the future release 8.2 this problem will
> be fixed? I don't have any idea left how to force acpi to show
> proper battery state, and I need this information to work with my
> laptop, so I think that the best option is to remove or leave
> unused freebsd for some time :/ and use only linux.
As few people already have said, your EC is not responding and that's
the root cause. However, 8.0 also didn't work according to your
dmesg output. You said "battery indicator" is not working from 8.1
in another e-mail. If I understand it correctly, that's some sort of
LED on the laptop, right? Did "acpiconf -i batt" ever work with 8.0?
I doubt it, though.
Another problem is acpi_wmi(4) is not attaching because it cannot
match the device, which is defined wrong in the AML:
Name (_HID, "pnp0c14")
It should never be lower cases although it seems we have a workaround
for *some* models in sys/dev/acpi_support/acpi_wmi.c:
201: static char *wmi_ids[] = {"PNP0C14", "PNP0c14", NULL};
Also, your acpidump output shows typical BIOS stupidity, i.e., it
tries to detect installed MS Windows version and responds
differently. We have updated ACPICA in 8.1 and it matches Vista's
OSI now. That's probably the reason why the battery indicator
stopped working.
To recap:
1. Add "pnp0c14" in sys/dev/acpi_support/acpi_wmi.c like this:
static char *wmi_ids[] = {"PNP0C14", "PNP0c14", "pnp0c14", NULL};
Recompile, install, and reboot.
2. If #1 does not help, remove the following three lines from
sys/contrib/dev/acpica/utilities/uteval.c, which were added in 8.1:
149: {"Windows 2006.1", ACPI_OSI_WINSRV_2008}, ...
150: {"Windows 2006 SP1", ACPI_OSI_WIN_VISTA_SP1}, ...
151: {"Windows 2009", ACPI_OSI_WIN_7}, ...
Recompile, install, and reboot.
3. If #2 still does not help, you should complain to HP.
Good luck.
Jung-uk Kim
More information about the freebsd-acpi
mailing list