A question about acpi suspend.-follow-up

Mauriat Miranda mirandam at gmail.com
Tue May 2 23:58:05 UTC 2006


Anyone feel free to correct me ...

On 5/2/06, Aaron Konstam <akonstam at sbcglobal.net> wrote:
> Ok, but as I say in a separate message how exactly does one wake the
> machine up. I used the script that was posted here which dos the supend
> things you indicate but i can't wake the machine up. How is that done?

Any script that you may have probably does the preparation work before
suspending and the post-wakeup work to restore anything that was put
into some modified state. However the script does not do the
_physical_ wake up, that would be dependant on a user event or some
type of registered hardware event.

Actions for ACPI are driven by events. A typical event could be
hitting the Power button or wake key (any key sometimes) or some
special option on a laptop. Anything that can possibly wake up the
system must already be supported in the hardware (BIOS), as once the
system is suspended no user loaded software is available (ie. Linux).

> Why does fedora not come with a suspend and wake up function that does
> the right thigs? Noy just because this is built in to Windows but it
> because it makes sense. For example how does one find out that:

ACPI is (supposed to be) a standard/spec. However implementation
requires some work. Since windows is a fixed platform with less
variation in software many hardware manufacturers test their ACPI
compliance against windows, hence once it works in Windows they don't
care about other systems.

The Linux kernel often has to do a great deal of work arounds or code
hacks to support as much hardware as it does (a great accomplishment
btw). So often some deviation, or poor hardware support or something
else from the _manufacturer_ can prevent ACPI from working in Linux as
well as it does in Windows.

> echo mem > /sys/power/state
> will cause the processor to suspend. Is there a similar wake up
> sequence.

Wake up sequences are dependant on events, however they do not
necessarily apply only when the system is powered off. For example
most laptop batteries can trigger events, laptop lids, thermal
sensors, etc. If your BIOS supports timed wakeup read up on 'nvram'.
Additionally certain hardware can be controlled: CPU clock throttling
(changing the freq of your processor) or fan speed, etc.

Some of the files in /proc and /sys are read and write. Ex:

[mirandam at charon ~]$ cat /sys/power/state
standby mem disk

standby would be S1
mem would be suspend to ram S3
disk would be suspend to disk S4 ("hibernate")
There's also S0, S2 and S5.

However most all your ACPI support is pretty much known to Linux once
the kernel loads. For a full list of support for your specific
hardware, run:
# dmesg
Look for lines that say 'ACPI:', however most information will require
some google research to understand what it means.

You can also look in /proc/acpi

I completely agree that the struggle for perfect ACPI in linux has
been a pain! However please know that it has come a long long way and
greatly improved since I first tried the acpi patch to kernel 2.4.20
in 2002 just to get the power button to trigger shutdown (I was easily
impressed back then). And please know that this is really the hardware
manufacturers failure NOT linux.

I would recommend complaining to manufacturers but it would fall on
deaf ears. Instead be more picky with your hardware to find
confirmation of compliant products.

Some hardware works perfectly out of the box and eventually most will,
however until that happens chances are that you will have to modify
scripts or configs etc etc.

I hope this helps.

Mauriat




More information about the fedora-list mailing list