[Pm-utils] pm-utils and pmu hardware.
pjones at redhat.com
Tue May 2 10:20:31 PDT 2006
On Tue, 2006-05-02 at 11:51 +0200, Stefan Seyfried wrote:
> On Tue, May 02, 2006 at 10:31:43AM +0100, Richard Hughes wrote:
> > Why do we need to check if the pmu device works? It's early, and I've
> > been up for hours so go easy on me :-)
> Well, just open()ing it would probably suffice, but just checking
> for the existence of /dev/pmu ("test -c /dev/pmu"), might not, since
> there could still be people out there using static /dev.
I think that's not right. If we're on static /dev, then the dev package
should be providing /dev/pmu on appropriate machines. Likewise, if
you're on a dynamic /dev, udev or initscripts should be
creating /dev/pmu when appropriate.
So if we've got some small pmu shim program (I'll call it "pm-pmu"),
then the interface it presents to the shell should be that we call
"pm-pmu --suspend" or "pm-pmu --hibernate". If it's not the right thing
to do, it returns an error, else it returns success. Then our shell
code looks like:
pm-pmu --suspend || echo -n mem > /sys/power/state
And that's it, we're done. No invoking it twice, no checking to see if
the device is there before we run it. That stuff is great for a kernel
API, but it makes the shell script senselessly complicated. If we've
already got to have a C program to do this part, it should just do all
of it on those boxes where it's needed.
More information about the Pm-utils