[Sugar-devel] announce: alternate power management

pgf at laptop.org pgf at laptop.org
Fri Mar 13 18:25:01 EDT 2009


david wrote:
 > Very cool!
 > 
 > How well will this integrate with the power management systems other
 > distros are using?  Can it become a 'Value Added' for other netbook
 > manufacturers?

while i'd love to say i did a lot of research and prep in order
to make sure my little project was api compliant and future
compatible with other power management systems, i can't say that.

my goal's were small:  to produce a lighter weight skeleton on
which to hang XO power management, in order to reduce the effort
needed to add some small features (that i wanted) to the current
functionality, and to make sure it was distro, desktop, and UI
independent.  (i also wanted to prove to myself that it could
really be done the way i was picturing it).

paul


 > 
 > david
 > 
 > On Fri, Mar 13, 2009 at 4:33 PM,  <pgf at laptop.org> wrote:
 > > hi --
 > >
 > > i had an itch that needed scratching, and the result is a
 > > reimplementation of much (but not all) of what ohmd does
 > > currently.
 > >
 > > i've thought for some time (and i believe cjb agrees) that ohmd
 > > is needlessly difficult to maintain and modify for our purposes
 > > on the XO.  small improvements are difficult to implement
 > > quickly.
 > >
 > > since my heart is with more quasi-embedded systems than the XO's
 > > current incarnation, part of my goal was to do a rewrite which
 > > was not dependent on hald, dbus, or X11 -- power management
 > > should work well from a console screen, and be available even if
 > > none of those services is running.
 > >
 > > i call the service i wrote "powerd".  it gets user idle/active
 > > reports from the olpc-kbdshim daemon (which is watching all
 > > user keypress and touchpad activity in any case), and it gets
 > > reports regarding the hardware inputs (power button, lid and
 > > ebook switches, ac adapter status, battery level, etc) either
 > > from another small daemon that monitors /dev/input/event{0,1,2},
 > > or from /sys nodes directly.
 > >
 > > it basically recreates ohmd's "dim after a bit, then sleep"
 > > behavior, with some additions:
 > >
 > >  - a power button splash screen:  a second press of the power
 > >     button invokes shutdown, simply waiting for a brief timeout
 > >     invokes suspend, and any user activity cancels.  (i even
 > >     managed to kinda sorta convey all that with graphics.  i'm
 > >     sure every UI person that sees it will roll their eyes.)
 > >
 > >  - configurable timeouts for screen dim and sleep.  the dim
 > >    level is configurable.
 > >
 > >  - different power management behavior when on wall power vs.
 > >    battery -- many laptop owners don't need to be miserly with
 > >    power when running from an external source.  powerd makes
 > >    this behavior selectable.
 > >
 > >  - different power behavior when in ebook mode (though detection
 > >    may be unreliable -- i think the ebook switch suffers from
 > >    some issues we previously noticed with the lid switch).  this
 > >    should let you configure things like a very short timeout until
 > >    idle-suspend, and/or no screen dimming, when in ebook mode.  (i
 > >    find the frequent on/off nature of the backlight when reading
 > >    in ebook mode to be a distraction.)
 > >
 > >  - clean shutdown on critically low battery.  (currently set at
 > >    a reported 5%, at which point my laptop would only run for
 > >    another couple of minutes.)
 > >
 > >  - the ability to run arbitrary scripts after a resume.  (perhaps
 > >    to reinit usb devices that don't suspend/resume properly?  haven't
 > >    used this much yet.)
 > >
 > >  - ease of customization, given that it's written in everyone's
 > >    favorite interpreted language.
 > >
 > >  unimplemented:
 > >
 > >  - inhibiting idle suspend based on system or network load.
 > >    i.e., the system will dim or suspend when watching a video.
 > >    (there are hooks in place where these features should be
 > >    implemented -- they're just not coded at all.)  there's
 > >    no /etc/ohmd directory, so it honors /var/run/inhibit-idle-suspend
 > >    instead.
 > >
 > >  - no special support for the wireless mesh, whatsoever.  i
 > >    couldn't remember how it was supposed to work, and i recall
 > >    cjb saying it's hard to figure out whether the mesh is active
 > >    or not.
 > >
 > >  - there's some support for wake-on-wlan, but it's not well tested.
 > >
 > >  finally a big one:
 > >  - proper support for USB keyboards and mice.  i recently
 > >    realized that since olpc-kbdshim only monitors the built-in
 > >    keyboard and touchpad, powerd will think the user is idle
 > >    while they type on a USB keyboard, and cheerfully suspend
 > >    regardless.  (in my case, most of the time i want to
 > >    auto-suspend is when i'm running on battery, and not using
 > >    external devices, so i sort of forgot about this case.)
 > >
 > > anyway, code is available here:
 > >    http://dev.laptop.org/git/users/pgf/powerd/
 > > and rpms are here:
 > >    http://dev.laptop.org/~pgf/rpms/
 > >
 > > you'll need to install both olpc-kbdshim and olpc-powerd (in that
 > > order).  when installed, olpc-powerd disables ohmd, and reenables
 > > it when uninstalled.  (so it's relatively safe to try.)
 > >
 > > there's no gui or other convenience for configuration --
 > > see/etc/powerd/powerd.conf.  the installed defaults should be
 > > reasonable.  and you'll need to run:
 > >    echo reconfig >/var/run/powerevents
 > > after making changes to the config file.
 > >
 > > paul
 > > =---------------------
 > >  paul fox, pgf at laptop.org
 > > _______________________________________________
 > > Sugar-devel mailing list
 > > Sugar-devel at lists.sugarlabs.org
 > > http://lists.sugarlabs.org/listinfo/sugar-devel
 > >

=---------------------
 paul fox, pgf at laptop.org



More information about the Devel mailing list