udev Regeln für Linux (HID)
|
<< Click to Display Table of Contents >> Navigation: Einstellungen > Mediengeräteeinstellungen > udev Regeln für Linux (HID)
|
udev-Regel anlegen (HID-Unterstützung) Im Anwendungsverzeichnis befindet sich die Datei "udev_hid_globaliptel.sh" (ab Vers. 2.0.20). sudo ./udev_hid_globaliptel.sh Das Skript erstellt udev-Regeln zur Nutzung von HID-Geräten. Die Datei dient als Beispiel und enthält die Hersteller-IDs der gängigsten Headset-Geräte. Die Hersteller-IDs sind bei Bedarf unter Berücksichtigung von Sicherheitsaspekten anzupassen oder durch explizite Headset-Geräte (Vendor/Product) zu ersetzen. Dies obliegt dem Administrator, da aus dem Setup heraus keine udev-Regeln angelegt werden. |
Warum muss man udev-Regeln setzen?
Unter Linux werden USB-Geräte automatisch vom Kernel erkannt, aber nicht automatisch für Anwendungen freigegeben.
Geräte wie Jabra-Headsets bestehen intern aus mehreren Funktionen:
•Audio (Soundkarte)
•HID (Tasten, Hook-State, Busy-Light, Rufannahme, etc.)
Gerade HID-Schnittstellen gelten als sensibel und erhalten daher standardmäßig sehr restriktive Zugriffsrechte.
Was passiert ohne udev-Regel?
Ohne passende udev-Regel:
•Das Headset wird zwar erkannt
•Audio funktioniert oft, aber nicht immer
•Steuerfunktionen funktionieren nicht oder nur teilweise
oRuf annehmen / auflegen
oMute-Status
•Anwendungen können nicht auf /dev/hidraw* zugreifen
Typisches Symptom:
Headset wird erkannt, aber nicht richtig initialisiert.
Das kann auch zu fehlendem Audio führen (häufig Mikrofon).
Warum reicht „Root“ nicht?
Linux geht davon aus:
•Nicht jede Anwendung läuft als Root
•Desktop-Programme, Softphones, Browser, CTI-Clients laufen als normaler Benutzer
Ohne udev-Regel:
•/dev/hidraw* gehört root:root
•Normale Benutzer → kein Zugriff
udev-Regeln sorgen dafür, dass:
•beim Anstecken des Geräts
•korrekte Rechte automatisch gesetzt werden
Was macht die udev-Regel konkret?
Beispiel:
ATTRS{idVendor}=="0b0e", MODE="0666"
Das bedeutet:
•Erkenne Jabra-Geräte
•Setze Lese-/Schreibrechte
•Erlaube Anwendungen:
oGerät zu initialisieren
oHID-Events zu lesen/senden
Beispiel für ein explizites Gerät:
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0b0e", ATTRS{idProduct}=="1234", MODE="0660", GROUP="audiodevices"
Warum passiert das nicht automatisch?
•Linux ist generisch, nicht herstellerspezifisch
•Distributoren vermeiden:
ozu offene Rechte
oSicherheitsrisiken
•Hersteller liefern udev-Regeln oft nicht standardmäßig mit
Eine udev-Regel kann man einfach wieder löschen, man muss danach nur ein paar Dinge beachten:
•Das Löschen allein reicht nicht, weil udev Regeln cached
•Bereits erkannte Geräte behalten ihre alten Rechte, bis ein trigger oder Re-Plug erfolgt
•Ein Neustart würde es auch erledigen (aber unnötig)
Regeldatei Löschen
sudo rm /etc/udev/rules.d/99-globalip-headsets.rules
udev-Regeln neu laden
sudo udevadm control --reload-rules
Regel anwenden
sudo udevadm trigger