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>