Popis
Linux Hardware Abstraction Layer (HAL) implementuje ucelený popis veškerého hardwaru v systému, včetně zařízení připojených za provozu, jako je USB (Universal Serial Bus). Funguje tak, že sloučí informace prezentované operačním systémem, fyzickým hardwarem, ovladači zařízení, subsystémy, jako je CUPS (Common Unix Printing System), a dokonce i správci systému. Tyto informace jsou shromažďovány a zpřístupněny aplikačním programům prostřednictvím programovacího rozhraní HAL.
Služba haldaemon vyvolá Démona HAL Proces hald k získání dat na úrovni jádra prostřednictvím komunikačního kanálu D-BUS jádra ke sběru a distribuci těchto informací. Data zařízení jsou prezentována v párech atributů klíč+hodnota.
Jedním z klientů služby HAL je zařízení fstab-sync(8), které automaticky aktualizuje/etc/fstab v reakci na připojení diskových jednotek. To platí pouze pro CentOS/RHEL 4. Fatab-sync funkce byla deaktivována a byla zavedena nová podpora připojení na CentOS/RHEL 5.
Konfigurace
Chcete-li spravovat službu haldaemon pro budoucí vypnutí a restartování, použijte chkconfig nástroj:
# /sbin/chkconfig haldaemon on # /sbin/chkconfig --list haldaemon haldaemon 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Chcete-li okamžitě ovládat službu haldaemon, použijte servisní nástroj:
# /sbin/servie haldaemon Uage: /etc/init.d/haldaemon {start|stop|status|restart|condrestart}
Spuštění nebo zastavení démona:
# /sbin/service haldaemon start Starting HAL daemon: [ OK ] # /sbin/service haldaemon stop Stopping HAL daemon: [ OK ]
RPM Název balíčku:hal
e.g. hal-0.5.8.1-38.el5.i386
Jakmile je tato služba démona (haldaemon) spuštěna, je možné zobrazit seznam zařízení a jejich vlastností pomocí nástroje „lshal “. Například:
# 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) ... ...
Haldaemon je minimálně konfigurovatelný pomocí souboru:
/etc/hal/hald.conf
Jedná se o soubor XML. Například:
<?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>