DeviceKit was the original name of the projects that are to replace parts of the functionality of HAL:

  • UPower, a D-Bus service for dealing with power management
  • udisks, a D-Bus interface for dealing with storage devices
  • media-player-info, information about portable media players
  • urfkill, a D-Bus service for dealing with RFKill Other parts of the stack should replace other things that HAL used to provide:

  • Network:

    * <a href="http://projects.gnome.org/NetworkManager">NetworkManager</a>, <a href="http://wicd.sourceforge.net/">Wicd</a>, etc. for network information and control. 
    * <a href="https://launchpad.net/ntrack">NTrack</a> should be sufficient for most applications' needs. 
    
  • Audio: hardware enumeration should generally be done through the same interface that is used to interact with audio devices, whether that is PulseAudio, ALSA, GStreamer or other libraries or platform-specific interfaces.
  • Input: use XI2 (which uses udev itself on Linux).
  • Display: use X: XRandR provides control over LCD backlights, for example.
  • Processors:
    * Linux: Enumeration via udev.  Most of the info HAL provided (and more) is available via <a href="http://www.kernel.org/pub/linux/utils/kernel/cpufreq/cpufrequtils.html">cpufreq</a>.  Some information can currently only be obtained from `/proc/cpuinfo`, such as the processor model name. 
    * FreeBSD: Use sysctl directly. 
    
  • Other:
    * On Linux, other hardware enumeration should be done directly through <a href="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html">udev</a>, generally via <a href="http://www.kernel.org/pub/linux/utils/kernel/hotplug/libudev/">libudev</a>.  Work is under way to provide most of the "extra" information that HAL provided _(except quirks?)_ via udev rules; <a href="../media-player-info/">media-player-info</a> does this, and <a href="http://upower.freedesktop.org">UPower</a> provides battery recall information via udev, for example. 
    * On other platforms, native hardware enumeration systems should be used. 
    
  • Qt/KDE applications can make use of the Solid library, which aims to provide a unified API for hardware enumeration across platforms and backends (Solid is Qt-only, but is distributed as part of kdelibs).

Mailing List

Announcements and discussion happen on the DevKit-devel mailing list.


CategoryHalReplacement