Descrizione
Il Livello di astrazione hardware (HAL) di Linux implementa una descrizione coerente di tutto l'hardware su un sistema, compresi i dispositivi hot plug come su USB (Universal Serial Bus). Funziona unendo le informazioni presentate dal sistema operativo, dall'hardware fisico, dai driver dei dispositivi, dai sottosistemi come CUPS (Common Unix Printing System) e persino dagli amministratori di sistema. Queste informazioni vengono raccolte e rese disponibili ai programmi applicativi tramite un'interfaccia di programmazione HAL.
Il servizio haldaemon richiama il demone HAL processo hald per ottenere i dati a livello di kernel tramite il canale di comunicazione D-BUS del kernel per raccogliere e distribuire queste informazioni. I dati del dispositivo sono presentati in coppie di attributi chiave+valore.
Un client del servizio HAL è la funzione fstab-sync(8) che aggiorna automaticamente/etc/fstab in risposta alle unità disco online. Questo vale solo per CentOS/RHEL 4. la funzione di sincronizzazione fatab è stata disabilitata ed è stato introdotto un nuovo supporto per il montaggio su CentOS/RHEL 5.
Configurazione
Per gestire il servizio haldaemon per arresti e riavvii futuri, utilizzare chkconfig strumento:
# /sbin/chkconfig haldaemon on # /sbin/chkconfig --list haldaemon haldaemon 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Per controllare immediatamente il servizio haldaemon, utilizzare lo strumento di servizio:
# /sbin/servie haldaemon Uage: /etc/init.d/haldaemon {start|stop|status|restart|condrestart}
Avvia o arresta il demone:
# /sbin/service haldaemon start Starting HAL daemon: [ OK ] # /sbin/service haldaemon stop Stopping HAL daemon: [ OK ]
Nome pacchetto RPM:hal
e.g. hal-0.5.8.1-38.el5.i386
Una volta che questo servizio demone (haldaemon) è in esecuzione, è disponibile per elencare i dispositivi e le loro proprietà con l'utilità "lshal “. Ad esempio:
# 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) ... ...
L'haldaemon è minimamente configurabile utilizzando il file:
/etc/hal/hald.conf
È un file XML. Ad esempio:
<?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>