Plans for hal 0.5.x
David Zeuthen
david at fubar.dk
Mon Dec 13 14:41:03 PST 2004
On Mon, 2004-12-13 at 21:40 +0000, Sergey Udaltsov wrote:
> Hi
>
> Since I am waiting for the feedback on my first piece of code, I can
> think a bit forward... Here are some questions to discuss regarding to
> acpi.
>
> > 4) ACPI/PMU: Should be a job of reading off files in /proc or using
> > /dev/pmu. Sergey already did the spec of what the properties should
> > look like; we should just use that. Also add support for laptop-
> > specific interfaces through hal framework ideas 3) and 4) above.
>
> Well, I am looking from somewhat "battery-obsessed' POV:) - so forgive
> me my narrow sight here:)
> While technically it is nearly trivial to get any info from ACPI
> (thanks to /proc/acpi) - we should first specify the behaviour of the
> ACPI-related nodes/capabilities/properties in the specs. Speaking of
> batteries: should the root node "Computer" get the "battery"
> capability - or should there be some "ACPI controller"/"ACPI
> subsystem". Alternatively (as we discussed earlier) - we could put
> some battery_unit(s) under the "Computer" node (or, again, unser "ACPI
> subsystem"?). Will all this stuff be managed by the addon - or in the
> hald itself? If former - which hardware, if present should trigger the
> addon invocation? Opinion, comments?
>
Good questions, all of them. Here are my ideas:
1. Each battery bay should have it's own separate device object of
capability 'battery_bay'. The hal daemon creates these objects
given the presence of /proc/acpi/battery/BAT0, BAT1 and so forth.
An add-on monitors the battery status; there is a bool property
battery_bay.battery_present and only if this is TRUE the device
object has the capability 'battery' and the battery.* properties
as defined elsewhere.
2. A hal device object for the AC adaptor. Simply with capability
power_source, boolean property power_source.enabled
3. Buttons also have separate hal device objects. They have capability
'button'. We define button.is_toggle which, if TRUE, means that the
actual button is one that can be pressed down for long amount of
times; like a lid switch. Also, then we export
button.toggled.is_pressed which is TRUE, if and only if, the button
is pressed down.
A property button.type, a string, says what kind of button we're
talking about. I envision the following buttons: power, sleep,
lid.
When buttons are pressed they emit a DeviceCondition, e.g. a D-BUS
signal on the hal device object.
4. Not sure how to abstract the various ACPI extra bits for e.g.
Toshiba laptops and now also IBM Thinkpads
http://memebeam.org/toys/ToshibaAcpiDriver
http://ibm-acpi.sourceforge.net/
or whether that is necessary.
Cheers,
David
_______________________________________________
hal mailing list
hal at lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/hal
More information about the Hal
mailing list