HAL

Introduction
Traditionally, desktop applications discovered hardware by communicating directly with the kernel, which maintains the list of devices connected to the system. The Hardware Abstraction Layer (HAL) makes information about certain classes of hardware accessible in a uniform format. When a new device powers up within the system (an event known as hotplugging), it can broadcast an asynchronous signal on the system message bus of the D-Bus IPC mechanism giving details of the new device and its capabilities. Any desktop application can connect to this message bus to discover the hardware. System-level scripts may also run to configure the device. kernel calls out to udev which in turn provides notifications to HAL through a standard Unix domain socket whenever a device plugs in. The HAL daemon (generally running as hald) maintains a list of devices; the list contains well-defined key-value pairs describing what each object represents. Each device object has a Universally Unique Identifier, or UUID. The HAL specification types and defines key-value pairs (namely device properties), so applications using HAL can interpret the values for each property.

HAL and D-Bus are inter-connected. D-Bus (Desktop Bus) allows programs to register on it for offering services to others. Programs can also register as waiting for events of the kernel like hot swapping hardware. D-Bus is implemented as a daemon. Each instance of D-Bus is called a channel. There is a privileged system channel and a private instance for each logged in user. The main mission of the system channel is to deliver the signals from the HAL daemon to the processes interested in them.

Using HAL
You will probably have HAL installed as a dependency if you have the hal use flag (you need hal and dbus useflags if you want to automount devices in KDE). If you don't, you can re-emerge everything with the and  USE flags. Add them to the USE line in and update your system:

You should also check if you have hald in your default runlevel:

hald |     default Otherwise, you should add it:

hald maintains a database of the devices connected to the system in real-time and connects to the D-Bus system message bus to provide an API that applications can use to discover, monitor and invoke operations on devices. The command queries the HAL daemon for devices and returns a list of all devices objects that the HAL daemon knows about.

To get detailed information on your logs, ask hald to be verbose changing your :

Information on how to understand hal information can be found in or in the links at the end of this document.

Fixed drives
Problem: Your fixed drives aren't mountable by tools like nautilus.

Solution: hal-0.5.11-r2 added a policy file that sets volume.ignore for fixed disks. Copy the file to, open that file and look for, true Change true to false and restart the HAL Daemon.