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:
    • NetworkManager, Wicd, etc. for network information and control.
    • NTrack 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 cpufreq. 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 udev, generally via libudev. Work is under way to provide most of the "extra" information that HAL provided (except quirks?) via udev rules; media-player-info does this, and UPower 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.