Descripción
La capa de abstracción de hardware (HAL) de Linux implementa una descripción coherente de todo el hardware de un sistema, incluidos los dispositivos conectados en caliente, como USB (Universal Serial Bus). Funciona fusionando información presentada por el sistema operativo, el hardware físico, los controladores de dispositivos, subsistemas como CUPS (Common Unix Printing System) e incluso de los administradores del sistema. Esta información se recopila y se pone a disposición de los programas de aplicación a través de una interfaz de programación HAL.
El servicio haldaemon invoca el demonio HAL proceso necesario para obtener los datos a nivel de kernel a través del canal de comunicación D-BUS del kernel para recopilar y distribuir esta información. Los datos del dispositivo se presentan en pares de atributos clave+valor.
Un cliente del servicio HAL es la función fstab-sync(8) que actualiza automáticamente/etc/fstab en respuesta a las unidades de disco que se conectan. Esto solo se aplica a CentOS/RHEL 4. La función fatab-sync se desactivó y se introdujo un nuevo soporte de montaje en CentOS/RHEL 5.
Configuración
Para administrar el servicio Haldaemon para futuros apagados y reinicios, use chkconfig herramienta:
# /sbin/chkconfig haldaemon on # /sbin/chkconfig --list haldaemon haldaemon 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Para controlar el servicio Haldaemon inmediatamente, use la herramienta de servicio:
# /sbin/servie haldaemon
Uage: /etc/init.d/haldaemon {start|stop|status|restart|condrestart} Inicie o detenga el demonio:
# /sbin/service haldaemon start Starting HAL daemon: [ OK ] # /sbin/service haldaemon stop Stopping HAL daemon: [ OK ]
Nombre del paquete RPM:hal
e.g. hal-0.5.8.1-38.el5.i386
Una vez que este servicio daemon (haldaemon) se está ejecutando, está disponible para enumerar los dispositivos y sus propiedades con la utilidad "lshal “. Por ejemplo:
# lshal Dumping 49 device(s) from the Global Device List: ------------------------------------------------- udi = '/org/freedesktop/Hal/devices/pci_8086_2770' info.parent = '/org/freedesktop/Hal/devices/computer' (string) info.udi = '/org/freedesktop/Hal/devices/pci_8086_2770' (string) pci.device_protocol = 0 (0x0) (int) pci.device_subclass = 0 (0x0) (int) pci.device_class = 6 (0x6) (int) info.vendor = 'Intel Corporation' (string) info.product = '82945G/GZ/P/PL Memory Controller Hub' (string) pci.subsys_vendor = 'Dell' (string) pci.product = '82945G/GZ/P/PL Memory Controller Hub' (string) pci.vendor = 'Intel Corporation' (string) pci.subsys_product_id = 429 (0x1ad) (int) pci.subsys_vendor_id = 4136 (0x1028) (int) pci.product_id = 10096 (0x2770) (int) pci.vendor_id = 32902 (0x8086) (int) pci.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:00.0' (string) linux.sysfs_path_device = '/sys/devices/pci0000:00/0000:00:00.0' (string) linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:00.0' (string) info.bus = 'pci' (string) ... ...
El haldaemon es mínimamente configurable usando el archivo:
/etc/hal/hald.conf
Es un archivo XML. Por ejemplo:
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
<!-- This configuration file controls the Hardware Abstraction Layer
daemon - it is meant that OS vendors customize this file to reflect
their desired policy.
-->
<haldconfig>
<!-- If true, then the device list is saved to disk such that
properties are kept between invocations of hald.
-->
<persistent_device_list>false</persistent_device_list>
<!-- Default value for storage.media_check_enabled for devices of
capability storage - this can be overridden by .fdi files.
Setting this to false results a whitelist policy, e.g. media
check is only enabled for storage devices with a .fdi file
saying so.
Conversely, setting it to true results in a blacklist policy
where media check is enabled by default but may be overridden
by a .fdi for devices causing trouble.
-->
<storage_media_check_enabled>true</storage_media_check_enabled>
<!-- Default value for storage.automount_enabled_hint for devices of
capability storage - this can be overridden by .fdi files.
Setting this to false results a whitelist policy, e.g. policy
agents should only automount storage devices with a .fdi file
saying so.
Conversely, setting it to true results in a blacklist policy
where policy agents should always automount unless this is
explicitly overridden by .fdi for devices causing trouble.
-->
<storage_automount_enabled_hint>true</storage_automount_enabled_hint>
</haldconfig>