Sophie

Sophie

distrib > Mandriva > 10.0-com > i586 > by-pkgid > 808989511d6c3fdb32ae2cb4841b0d49 > files > 12

hal-0.2.6-5mdk.i586.rpm


====================================
HAL 0.2 "Open the Pod Bay Door, Hal"
====================================

So, I've promised a release of HAL before Christmas, so here goes
version 0.2. It's not at version 9000 yet, so it won't do any device
configuration (like closing your Pod Bay door device), and it probably
never will. That's right, HAL is a lot simpler than earlier envisioned.

To get an idea of what I'm talking about, you might want to read the
updated spec available at http://freedesktop.org/Software/hal and give
the tarball a testdrive.

Special thanks to Martin Waitz for patches to package HAL.


What is it?
===========

HAL is a hardware abstraction layer and aims to provide a live list of
devices present in the system at any point in time. HAL tries to understand
both physical devices (such as PCI, USB) and the device classes (such as 
input, net and block) physical devices have, and it allows merging of
information from so called device info files specific to a device.

HAL provides a network API through D-BUS for querying devices and notifying
when things change. Finally, HAL provides some monitoring (in an unintrusive
way) of devices, presently ethernet link detection and volume mounts are
monitored.

This, and more, is all described in the HAL specification


Where can I get it?
===================

 http://freedesktop.org/~david/hal-0.2/spec/hal-spec.html
 
 http://freedesktop.org/~david/hal-0.2/hal-0.2.tar.gz


How do I build and run HAL?
===========================

You'll need recent glib, expat and d-bus from CVS to build HAL. Also
pygnome and pygtk is required to run the GUI device manager. A Linux
2.6 kernel is also required. HAL integrates with udev (if udev is
compiled with D-BUS support; version 009 and onwards happen to
be). You'll also need a recent version of linux-hotplug.

The client library, libhal, for use in desktop application, only
requires dbus (which doesn't have any dependencies) so both KDE and
GNOME people should be happy.

To build, do the usual ./configure; make; make install dance. Make
sure to install into same prefix as D-BUS, otherwise you'll need to
copy some files yourself.  Now restart D-BUS to reload the policy
configuration files and (as root) start hald - the HAL daemon.

You can now start hal-device-manager from a separate terminal. Try
plugging or unplugging USB storage or Cardbus (PCMCIA) devices and
check out the device list change. Also, try unplugging your network
cable while looking at the properties for that device.

If you're the advanterous type, you can try to run 

 examples/volumed/volumed.py

from the tarball while plugging in USB storage. This example shows how
a volume manager built on top of HAL could work. It doesn't really
mount anything, but it does print out a line when it would have
mounted or unmounted a volume. Obviously, you'll need udev for this.

It's also great fun (!) to fiddle around with writing .fdi files for
your devices. I've included a single .fdi file in the distribution to
match my digital camera. You can also play around with the
hal-get-property and hal-set-property tools; the latter can be used to
set the info.persistent property to keep unplugged devices in the
device list to retain the properties of the device while it is
unplugged.


Is this stable software?
========================

No way, not yet, at best consider this release a development
snapshot. It has been tested on Fedora Core 1 (i386) and Debian (ppc),
both with 2.6.0-test11 kernels.

There's still lots of small issues I'd wish was resolved before this
release, that's detailed in doc/TODO in the tarball. Most of the short
term issues will probably be addressed in the next release, 4-8 weeks
from this release. Also, important busses, such as IEEE1394, is not
supported yet.

However, even though the API may change somewhat, I think we have
now got the basic infrastructure necessary to start building
application and integrating HAL into desktop environments. That
was the grand plan anyway :-)

Please send bug reports, suggestions and patches to the xdg-list. Do
consult the TODO list to see whether the issue is already known.