Laptop ACPI question

Markie mark.cullen at dsl.pipex.com
Sat May 1 14:29:08 PDT 2004


----- Original Message ----- 
From: "Kevin Oberman" <oberman at es.net>
To: "Markie" <mark.cullen at dsl.pipex.com>
Cc: <freebsd-mobile at freebsd.org>
Sent: Saturday, May 01, 2004 10:05 PM
Subject: Re: Laptop ACPI question


| > From: "Markie" <mark.cullen at dsl.pipex.com>
| > Date: Sat, 1 May 2004 21:29:56 +0100
| > Sender: owner-freebsd-mobile at freebsd.org
| >
| > Hello,
| >
| > Just a quick question... would having ACPI working on a laptop increase
| > battery life at all? I just left it sat idle without ACPI and it got to
an
| > hour and 30 minutes... I went to start xchat and it just switched off
| > straight away after it started loading :o) if I leave it doing `cat
| > /dev/random > /dev/null` it only lasts 45 minutes :o(
| >
| > I am just wondering if it's a naffed battery... or... there's something
a
| > bit wrong with the laptop or... I just need ACPI? I don't really know
what
| > ACPI does, so.... :o)
|
| Actually, ACPI will greatly improve battery life soon, but not yet. The
| bits and pieces are being fed into CURRENT and I suspect that SpeedStep
| support will be coming soon.
| In the meantime, you can use sysctls to manually adjust CPU performance
| to enhance battery life.
|
| Look at:
| hw.acpi.cpu.throttle_max: 8
| hw.acpi.cpu.throttle_state: 8
| hw.acpi.cpu.cx_supported: C1/0 C2/1 C3/85
| hw.acpi.cpu.cx_lowest: 0
| hw.acpi.cpu.cx_history: 1453705/0 0/0 0/0
|
| Reducing the hw.acpi.cpu.throttle_state will increase battery life by
| effectively reducing CPU speed. The reduction is linear and a setting of
| 1 makes my system crawl.
|
| Setting hw.acpi.cpu.cx_lowest will reduce the responsiveness of P4-M or
| Centrino system by putting the system in a "deeper sleep" than just
| halting the CPU. The cost is that it takes longer for the system to
| start processing again. Its effect can appear as jerkiness in some
| operations. It may be set to as many values (higher is slower) as are
| listed in cx_history. (In the example, there are three, 0, 1, and 2
| available.)  Depending on hardware connected, some levels may not be
| available. On my laptop, 2 is not available if the USB driver is loaded.
|

Thanks for both your replies! I am not too sure I have speed step or
anything. It's a fairly old CPU, a mobile celeron 800MHz, 100MHz FSB
(anyone know anything about these at all? are they not that good? seems
nice and quick to me). I guess I am pretty buggered then. There's not alot
of info I can find about the laptop either. In any case, it wouldn't boot
with ACPI enabled anyway... so I think I am just double buggered :o)

All I know is some site said that the battery was supposed to last 2 hours
ish, which would be cool. No doubt this was taken with the laptop sitting
totally idle though.

I will have to try Linux or Windows if I can't get FreeBSD ACPI working and
see if it gets me any more battery life I guess! Such a shame, it doesn't
seem that bad of a laptop for what I want... but if I have to use it on
mains it's not as useful as it could be!

| The history also shows how often each sleep mode has been invoked.
|
| When the acpi_cpufreq code is ready, it will provide the best power
control,
| but this can help.
|
| I'll append a little snippet I use to adjust the power, but feel free to
| try other combinations.

If I ever get ACPI to work that could be very useful though, thanks!

| -- 
| R. Kevin Oberman, Network Engineer
| Energy Sciences Network (ESnet)
| Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab)
| E-mail: oberman at es.net Phone: +1 510 486-8634
|
| #!/bin/sh
| case "$1" in
| ac)
|     sudo sysctl hw.acpi.cpu.throttle_state=8
|     sudo sysctl hw.acpi.cpu.cx_lowest=0
|     echo "Set to AC power (high) performance"
|     ;;
| hi)
|     sudo sysctl hw.acpi.cpu.throttle_state=8
|     sudo sysctl hw.acpi.cpu.cx_lowest=2
|     echo "Set to high battery performance"
|     ;;
| normal)
|     sudo sysctl hw.acpi.cpu.throttle_state=4
|     sudo sysctl hw.acpi.cpu.cx_lowest=2
|     echo "Set to normal battery performance"
|     ;;
| lo)
|     sudo sysctl hw.acpi.cpu.throttle_state=1
|     sudo sysctl hw.acpi.cpu.cx_lowest=2
|     echo "Set to low battery performance"
|     ;;
| *)
|     echo "Usage: `basename $0` (ac|hi|normal|lo)" >&2
|     exit 64
|     ;;
| esac
|
| exit 0



More information about the freebsd-mobile mailing list