[Kde-hardware-devel] Notes from Solid BoF at Tokamak4

Kevin Ottens ervin at kde.org
Tue Feb 23 00:28:22 CET 2010

(CCing Martin Sandsmark as his name popped up regarding the audio support)

Hello metalworkers![*]

Since the mail of sebas about the notes taken during the Solid BoF at Tokamak4 
didn't go through after two attempts (and is not even stuck into the moderator 
queue... go figure), I decided to send it here directly myself.

Of course, if you're interested in hardware support in KDE for 2010 you 
probably want to read it all.

As a bonus (as apparently it wasn't in sebas' ghost mail), I'm providing you 
URLs to the two pictures we took of the whiteboard. They kind of summarize the 
two great directions we're taking for the project.

Extra info on this picture:
We all noticed that unlike what was planned, there's really only one consumer 
of each of the areas (power, network, bluetooth, lirc) of libsolidcontrol. As 
such its structure to ensure independence is an unnecessary burden to the 
people working on libsolidcontrol and the people using it in the stack as the 
abstraction is low level.
Also, we noticed that there's an organizational pattern happening already in 
the powermanagement and networkmanagement area with a kded module at its 
center, providing a control interface for a KCM and a Plasma data engine which 
feeds a Plasma widget display. In some case libsolid might query said daemon 
for very high level and simple features aimed at general purpose applications.
So, the idea is to rollback the relevant libsolidcontrol parts in the KDED 
module, killing the backend separation in the process. The abstraction over 
the system facilities used would then be done within the KDE module in a more 
ad hoc way, or using several versions of the module.

Extra info on this picture:
Right now, libsolid has a frontend/backend architecture. But there can be only 
one backend loaded at a time which then has to provide *everything* by itself. 
That was quite a limitation, and for instance in the end that's the reason why 
we weren't listing any of the bluetooth devices directly from libsolid for 
instance (as that would require a BlueZ backend).
In order to fix the situation, and also to distribute better the 
responsibilities among us (so far the HAL backend is mostly a one man show, 
and there's only 24 hours per day), the idea is to finally allow libsolid to 
use several backends at the same time depending on the requests it gets from 
the application. We listed several benefits to that:
 - Bringing more contributors to libsolid via its backends;
 - Tackling some of the expected features that we couldn't really provide 
(better audio support or bluetooth for instance);
 - Easier to also provide virtual devices that we were completely ignoring so 
far (alsa come to mind here);
 - Opening up libsolid on the network (yes! network devices from your home! as 
we aim at having a UPNP backend);
 - Make ervin happy as he'll feel less alone, doing mostly integration work. 

So we still have bugreports against libsolid, but I kicked myself and actually 
fixed the most important issue it still had to my knowledge: the leak which 
was reported on kde-core-devel in december. So now I can actually start 
touching the architecture to go to the multi-backend architecture as soon as I 
find some time for it. I don't expect it to take too long in fact...

The movement toward disbanding libsolidcontrol is still in its infancy and 
will probably take some time. Dario and Will are probably well placed to 
comment on their own areas (which are AFAIK the biggest ones).

That's all for now folks. Interesting times ahead for us.

Comments and questions are welcome, in particular since that's mostly raw 
material that we have taken during the meeting (tried to reinsert some context 


[*] Since KDE people are called "gearheads", I just decided to call the people 
dealing with hardware in KDE the "metalworkers" (and yes for those who wonder 
it's kind of a reference to Judas Priest which was playing earlier at 
Kévin Ottens, http://ervin.ipsquad.net

KDAB - proud patron of KDE, http://www.kdab.com
-------------- next part --------------
Solid BoF Tokamak 4 Notes

Present: Dario, Kevin, Fredrik, sebas, Friedrich, Alex, Will, Sandro

  - power management should become more session-friendly
  - Suspension moves into KSM, where also halt, reboot, logout are (Dario)
  - consolekit is used to do policy on that level,
  - it is concerning that consolekit is hardly maintained while it is a central component and many things stop working if it breaks
  - Dario considers making powerdevil modular by using plugins, for hardware-related functionality, making it more adaptable for mobile devices and device-specific implementations
  - We should look into Pardus's power management stuff, and consider using that instead of moving from HAL to upower (sebas), maybe upstreaming parts of comar
  - we might want to fire up consolekit in startkde ourselves, so we can prevent authorization problems (dario)

  - networkmanagement plasmoid finished this week
  - better support for multiple batteries, weighted display for batteries with (sebas)
  - support for UPS (we want to know when the UPS runs out of power), there's a battery type for that already
  - likewise mouse batteries (just a different battery type reported)
  - testing this can be done with libsolid's fake backend, basically an XML description for 
  - We need a resumed() signal, for updating UIs after sleep (clock!), we've been waiting for HAL (upower, devicekit) for too long, as the DBus call to suspend is sync, we should be able to fire such a signal relatively reliably (dario has a patch, sebas will test it), we need to note that the signal might not be a 100% reliable, but better than nothing and will likely work in many cases
  - The screenlocker in powerdevil should lock right before suspend, not after, to prevent a small window from opening where the screen isn't locked (dario)
  - solidcontrol should get a list of shared wireless networks instead of accesspoints (a network can have multiple accesspoints, what matters to the user is the network, not the accesspoint) (Will)
  - as most of the stuff in libsolidcontrol (in kdebase,not kdelibs' solid) has only one user, we might fold it back into those applications, making development of those slightly easier (probably not a big problem anyway)
    - some simple patches will be needed (powermanagement dataengine for example), but shouldn't be a lot of work
  - Kevin considers adding virtual devices to the scope of solid as well (think of ALSA's fake devices, or pulseaudio's), 4.6 material
  - previously, only one backend was allowed to be loaded at a time
  - in the future, we might to go to multiple backends at a time i.e.:
    - udev,
    - udisk (kevin),
    - upower (dario),
    - bluez (afiestas?),
    - alsa (sandsmark?),
    - pulse (guthrie),
    - upnp (friedrich)
    not all backends matter a lot; 
  - contact Pardus guys to put their backends upstream to fit into this
  - this would simplify providing a complete devicetree from libsolid
  - there would not be any interaction between the different backends
  - this makes libsolid able to deal with different frameworks at a time
  - talking directl to udev would not enable virtual devices, as udev is not allowed to do that
  - contact Alex Fiestas about bluez stuff
  - upnp fits nicely into solid based on its structure, for example on top of StorageAccessDevice
  - Bart is working on a KIO slave for upnp
  - A solid sprint would be great, maybe in June
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
Url : http://mail.kde.org/pipermail/kde-hardware-devel/attachments/20100223/fad9556e/attachment.sig 

More information about the Kde-hardware-devel mailing list