HAL - Hardware Abstraction Layer
HAL is in maintenance mode - no new features are added. All future development focuses on Software/DeviceKit-disks, Software/DeviceKit-power, NetworkManager, PulseAudio, udev, ... |
These pages attempt to provide a specification and an implementation of a hardware abstraction layer.
For a good background on what a HAL does, see the "Making Hardware Just Work" article that motivated this work.
Source Code
View latest code on-line: http://gitweb.freedesktop.org/?p=hal.git;a=tree
View latest changelog/commitlog online: http://gitweb.freedesktop.org/?p=hal.git;a=log
Building development tree: HAL Build Instructions
Tarballs are available at http://hal.freedesktop.org/releases/
GIT
Git is now being used for HAL. There is a nice tutorial for using git with freedesktop.org projects. There is also another tutorial at IBM Developerworks site. You can also take a look at http://gitweb.freedesktop.org/?p=hal.git;a=blob;f=HACKING.
hal-info
hal-info is a small hal sub-package that provides the hardware data and quirks. These quirks are currently things like what mice support reporting battery status, what music players are supported and what cameras are detected.
hal-info and hal should not be packaged together. When packaging hal, it should depend on hal-info, of any version. hal-info should also be checked out in the same level directory as hal if you intend to use ./run-hald.sh
There are no official tarball releases yet, but you can get the latest code from git and release tar.gz from http://hal.freedesktop.org/releases/. See here for more information.
Dependencies
- Linux kernel 2.6.19 (or later)
- util-linux 2.15 (or later)
- udev 125 (or later)
- dbus 0.61 (or later)
- glib 2.6.0 (or later)
- expat 1.95.8 (or later)
- bash 2.0 (or later)
- hal-info 20070402 (or later)
Optional Dependencies
libusb >= 0.1.10a
pciutils >= 2.2.3
dmidecode >= 2.7
- parted == 1.7.1, 1.8.0, 1.8.1, 1.8.2 or 1.86
cryptsetup-luks >= 1.0.1
libsmbios >= 0.13.4
Bugs?
Communicate
- Mailing lists:
HAL Discussion
HAL commit notification
- IRC:
#hal on freenode.net
HOWTOs
Documentation
"System Integration and GNOME by David Zeuthen (GUADEC June 2006) - ODF
"System Integration and GNOME by David Zeuthen (GUADEC June 2006) - PDF
"HAL reverse engineered" (for OpenSolaris) by Artem Kachitchkine (April 2006)
"Adding encryption support to HAL: A user's experience with Fedora development" (Red Hat Magazine) by W. Michael Petullo (October 2005)
"Desktop and Hardware Configuration" (Red Hat Magazine) by David Zeuthen (January 2005)
"Making Hardware Just Work" by Havoc Pennington (July 2003)
External Resources
libhal++: C++ wrapper for libhal and libhal-storage. As of now not supported by the HAL project/developers: bug reports/requests please to internalerror AT gmail.com (M.Derezynski)
libhal++ has now been superceded by HAL/C++, a reimplementation of libhal and libhal-storage in C++. The project can be found at the same server, HAL/C++


