HAL - Hardware Abstraction Layer
HAL is in maintenance mode - no new features are added. All future development focuses on udisks, upower and other parts of the stack. See Software/DeviceKit for more information. |
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://cgit.freedesktop.org/hal/tree/
- View latest changelog/commitlog online: http://cgit.freedesktop.org/hal/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://cgit.freedesktop.org/hal/tree/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 [email protected] HAL commit notification [email protected]
IRC: * #hal on freenode.net
HOWTOs
- Guide to using powermanagement quirks to fix resume
- Guide to using keymap quirks to fix unknown scancodes
Documentation
- Latest HAL specification
- "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++
- gnome-mount