Description
La couche d'abstraction matérielle (HAL) de Linux implémente une description cohérente de tout le matériel d'un système, y compris les périphériques branchés à chaud comme sur USB (Universal Serial Bus). Il fonctionne en fusionnant les informations présentées par le système d'exploitation, le matériel physique, les pilotes de périphériques, les sous-systèmes tels que CUPS (Common Unix Printing System) et même les administrateurs système. Ces informations sont rassemblées et mises à la disposition des programmes d'application via une interface de programmation HAL.
Le service haldaemon invoque le démon HAL processus hald pour obtenir les données au niveau du noyau via le canal de communication D-BUS du noyau afin de collecter et de distribuer ces informations. Les données de l'appareil sont présentées dans des paires d'attributs clé+valeur.
L'un des clients du service HAL est la fonction fstab-sync(8) qui met automatiquement à jour/etc/fstab en réponse à la mise en ligne des disques durs. Cela s'applique uniquement à CentOS/RHEL 4. La fonctionnalité fatab-sync a été désactivée et une nouvelle prise en charge du montage sur CentOS/RHEL 5 est introduite.
Configuration
Pour gérer le service haldaemon pour les futurs arrêts et redémarrages, utilisez le chkconfig outil :
# /sbin/chkconfig haldaemon on # /sbin/chkconfig --list haldaemon haldaemon 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Pour contrôler le service haldaemon immédiatement, utilisez l'outil de service :
# /sbin/servie haldaemon Uage: /etc/init.d/haldaemon {start|stop|status|restart|condrestart}
Démarrer ou arrêter le démon :
# /sbin/service haldaemon start Starting HAL daemon: [ OK ] # /sbin/service haldaemon stop Stopping HAL daemon: [ OK ]
Nom du package RPM :hal
e.g. hal-0.5.8.1-38.el5.i386
Une fois que ce service démon (haldaemon) est en cours d'exécution, il est disponible pour répertorier les appareils et leurs propriétés avec l'utilitaire "lshal “. Par exemple :
# 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) ... ...
Le haldaemon est minimalement configurable à l'aide du fichier :
/etc/hal/hald.conf
C'est un fichier XML. Par exemple :
<?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>