HAL
From openSUSE
Contents |
Overview
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 e.g. PCI and USB) and the device classes (such as input, net, and block) physical devices have. Besides it allows merging of information from device info files (FDI-files) specific to a device. HAL provides a API through D-Bus for querying devices and notifying when things change. Finally, HAL provides some monitoring (in an unintrusive way) of devices.
For a full overview of all device information and D-Bus interfaces and methodes provided by HAL, check the HAL specification (e.g. via the hal-doc.rpm (under /usr/share/doc/packages/hal/spec/hal-spec.html or via this link))
Packages
HAL is since SUSE 10.0 part of all SUSE/openSUSE/SLE installations. These versions were shipped with our products:
- SUSE 10.0 v0.5.4
- SUSE 10.1/SLES10/SLED10 v0.5.6
- openSUSE 10.2 v0.5.8 (git snapshot 20061106)
- openSUSE 10.3 v0.5.9 (git snapshot 20070831)
- openSUSE 11.0 v0.5.11
|
(Note) Additional Packages/versions There are two repository in the openSUSE buildservice with with HAL packages you may find useful:
|
HOWTOs
Keymapping
HAL is able to map unknown scancodes (e.g. from a multimedia keyboard or special keys from Laptops) to keycodes by add the mapping to a FDI-file. You can find a detailed HOWTO here.
You can report the new mappings back as in the HOWTO described to the HAL mailing list or the freedesktop.org bugzilla, but also to the Novell Bugzilla.
Debugging/Bugreporting
If you report bugs about HAL to the Novell Bugzilla, then it would speed up the bugfixing, if you:
- provide a detailed description about what is exactly wrong
- read first the following instructions/hints and attach the proposed information to the bug as attachment.
General
If HAL isn't crashed, please provide always the full output of lshal. You can for example attach the file generated by:
lshal > /tmp/lshal_output
HAL crashes or hangs
- get root user or use sudo
- open /etc/init.d/haldaemon in an editor of your choice and change:
- for SUSE 10.1/SLE10:
HALDAEMON_PARA="--daemon=yes --retain-privileges";
to:HALDAEMON_PARA="--daemon=yes --retain-privileges --verbose=yes --use-syslog";
- for openSUSE 10.2 and newer:
HALDAEMON_PARA="--daemon=yes";
to:HALDAEMON_PARA="--daemon=yes --verbose=yes --use-syslog";
- for SUSE 10.1/SLE10:
- call:
logger ===============================
- then restart HAL via:
rchal restart
- check if hal is ready by calling lshal and checking if device information get printed
- reproduce the problem
- attach the part of /var/log/messages since the =============================== in the syslog to the bug.
HAL don't detect a device
- Is the device hotplugable (as e.g. a USB-Stick, a PCMCIA card ...)?
- remove the device from your machine
- call on a console (e.g. xterm or konsole):
lshal -m
- readd/plug in the device and wait some seconds
- attach the generated output to the bug and attach also the part of /var/log/messages since you added the device to your machine and the full output of lshal
- If the device is not hotplugable (as e.g. build in devices as e.g. a sound card or a built-in card reader)
- follow the instuctions for the case when HAL crashes
Permission problems (since openSUSE 10.3)
If you get in your desktop session a message that you e.g. can not:
- mount a CD/DVD
- mount a USB-stick
- suspend to disk/ram
because of a System policy prevents ... the action, then please check first if:
- ConsoleKit is running, by call as root user:
rcconsolekit status
- if you have a XDG_SESSION_COOKIE in your environment by call:
env | grep XDG_SESSION_COOKIE
If ConsoleKit isn't running or you don't have a XDG_SESSION_COOKIE call as root user:
rcconsolekit restartand then leave your desktop session and login again.
Links
- [1] HAL project page

