staging.inyokaproject.org

HAL

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.


Anmerkung: Ab Ubuntu 10.04 ist HAL komplett aus Ubuntu entfernt worden. Dieser Artikel ist nur noch für die KDE-Versionen (Kubuntu bis einschließlich 10.10) gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

HAL 🇬🇧 steht für Hardware Abstraction Layer (übersetzt: Hardware Abstraktionsschicht). HAL ist, wie der Name schon sagt, eine Zwischenschicht zwischen Hardware und Software, welche die Zugriffe der Software auf die Hardware abstrahiert. Dies hat den Vorteil, dass die Software nicht speziell auf jede Art von Hardware angepasst werden muss, sondern dass HAL quasi als "universeller Übersetzer" arbeitet.

HAL unter Linux ist noch relativ jung; produktiv eingesetzt wird HAL seit ca. 2005 / 2006. Ubuntu nutzt HAL seit Ubuntu 6.06 LTS Dapper Drake. HAL kooperiert normalerweise eng mit udev und D-Bus (dem Interprozess-Kommunikationssystem). Seit Ubuntu 8.04 LTS wird zusätzlich noch das PolicyKit zur Prüfung von Privilegien von aufrufenden Prozessen eingesetzt.

Grundsätzlich ist die Idee von HAL weder neu noch Linux-spezifisch. So verwendete schon Windows NT (ebenso wie dessen Nachfolger) eine Hardware-Abstraktionsschicht.

Ab Ubuntu 10.04 Lucid Lynx entfällt HAL komplett.

Installation

HAL ist in der Standardinstallation von Ubuntu immer enthalten; das Paket heißt

  • hal

Achtung!

Dieses Paket sollte niemals entfernt werden, da sonst die korrekte Funktion des Systems nicht mehr gewährleistet ist bzw. viele Programme HAL benötigen!

Wer mehr über HAL erfahren möchte, der kann auch noch die Dokumentation über das Paket

  • hal-doc

Befehl zum Installieren der Pakete:

sudo apt-get install hal-doc 

Oder mit apturl installieren, Link: apt://hal-doc

installieren [1].

Die Dokumentation findet man dann unter /usr/share/doc/hal-doc.

Nutzung

Normalerweise bemerkt der Nutzer HAL gar nicht, da es seinen Dienst im Hintergrund verrichtet. HAL wird über den HAL-Demon hald gesteuert, welcher beim Systemstart automatisch geladen wird.

Das Verhalten von HAL kann über zusätzliche Dateien konfiguriert werden, welche die Endung .fdi tragen und im Verzeichnis /etc/hal/fdi/policy/ liegen müssen. Ein manueller Eingriff ist in der Regel nicht notwendig. Ein Beispiel dafür gibt es im Artikel Archiv/HAL/Eingabegeräte, welcher die Konfiguration von Eingabegeräten für neuere XServer beschreibt.

lshal

lshal ist ein Hilfsprogramm, welches mit HAL installiert wird, das Informationen über die auf dem Rechner von HAL erkannte Hardware ausgibt.

Die allgemeine Syntax lautet:

lshal [OPTIONEN] 

Ohne Angabe von Optionen ist die Ausgabe sehr lang, da zu jedem Gerät jede Menge Angaben gemacht werden, z.B.

[...]
udi = '/org/freedesktop/Hal/devices/pci_8086_27a2_drm_i915_card0'
  drm.dri_library = 'i915'  (string)
  info.capabilities = {'drm'} (string list)
  info.category = 'drm'  (string)
  info.parent = '/org/freedesktop/Hal/devices/pci_8086_27a2'  (string)
  info.product = 'Direct Rendering Manager Device'  (string)
  info.subsystem = 'drm'  (string)
  info.udi = '/org/freedesktop/Hal/devices/pci_8086_27a2_drm_i915_card0'  (string)
  info.vendor = 'Intel Corporation'  (string)
  linux.device_file = '/dev/dri/card0'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'drm'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:02.0/drm/card0'  (string)
[...]

Die uid ist dabei die eindeutige Identifizierung des Geräts, alle weiteren Angaben sind Charakterisierung, Kategorisierungen etc., die spezifisch für dieses Gerät sind.

lshal kennt die folgenden Optionen:

Optionen von lshal
Option Beschreibung
-m, --monitor"Monitoring Mode", gibt die Ausgaben und Aktionen von HAL live aus
-s, --short(stark) gekürzte Ausgabe
-l, --longlange Ausgabe (Voreinstellung)
-t, --treebaumartig-strukturierte Ausgabe (siehe tree)
-u UID, --show UIDzeigt nur das Gerät mit der uid UID

Detailliertere Informationen findet man in den Manpages zu lshal.

Weitere Tools

HAL bringt noch eine Reihe weitere Hilfsprogramme mit, die im Folgenden kurz beschrieben werden.

Hinweis:

Der Einsatz dieser Programme ist normalerweise nicht notwendig; sie werden nur bei Problemen mit der Erkennung von Geräten benötigt.

weitere Hilfsprogramme von HAL
Programm Beschreibung
hal-deviceAnlegen oder Entfernen von Geräten
hal-get-propertyLiest die Eigenschaften eines Gerätes aus
hal-set-propertyLegt die Eigenschaften eines Gerätes manuell fest
hal-find-by-propertySucht nach Geräten basierend auf deren Eigenschaften
hal-find-by-capabilitySucht nach Geräten basierend auf deren Fähigkeiten
hal-disable-pollingSchaltet das sog. "Polling" für Geräte aus oder ein
hal-is-caller-locked-outPrüft, ob ein Prozess, der ein Gerät benutzen will, auch den D-Bus nutzen darf
hal-is-caller-privilegedPrüft, ob ein Prozess die Privilegien hat, um ein Gerät zu nutzen
hal-lockSperrt den Zugriff auf (bestimmte) Geräte

Detailliertere Informationen erhält man bei allen Programmen über die Option --help oder in den Manpages. Besonders vor dem Einsatz von hal-disable-polling sollte man die Manpage lesen!

Diese Revision wurde am 13. Februar 2020 06:42 von Heinrich_Schwietering erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Hardware, System, Server