SYNOPSIS
loadusr*_ *hal_input [-KRAL] inputspec …
BESCHREIBUNG
hal_input is an interface between HAL and any Linux input device, including USB HID devices. For each device named, hal_input creates pins corresponding to its keys, absolute axes, and LEDs. At a fixed rate of approximately 10 ms, it synchronizes the device and the HAL pins.
EINGANGSSPEZIFIKATION
Der inputspec kann in einer von mehreren Formen vorliegen:
- Eine Zeichenkette S
-
Ein Teilstring oder eine Shell-ähnliche Musterübereinstimmung wird auf den "Namen" des Geräts, die "phys" (die Informationen über den Anschluss des Geräts enthält) und die "id", eine Zeichenfolge der Form "Bus=…. Hersteller=… Produkt=… Version=…". Sie können den Namen, phys und id der angeschlossenen Geräte anzeigen, indem Sie
less /proc/bus/input/devicesausführen. Beispiele:-
SpaceBall
-
"Vendor=001f Product=0001"
-
serio*/input0
-
- Eine Zahl N
-
Dadurch wird /dev/input/eventN geöffnet. Außer bei Geräten, die immer an das System angeschlossen sind, kann sich diese Zahl bei einem Neustart oder beim Entfernen des Geräts ändern. Aus diesem Grund wird die Verwendung einer Ganzzahl nicht empfohlen.
Wenn mehrere Geräte durch dieselbe Zeichenfolge identifiziert werden, fügen Sie ":N" hinzu, wobei N der Index des gewünschten Geräts ist. Wenn zum Beispiel mouse (engl. für Maus) mit input3 und input10 übereinstimmt, dann wählen mouse und mouse:0 den input3 aus. Die Angabe von mouse:1 legt input10 fest.
Bei Geräten, die als mehrere Einträge in /dev/input erscheinen, bleiben diese Indizes wahrscheinlich jedes Mal gleich. Bei mehreren identischen Geräten hängen diese Indizes wahrscheinlich von der Reihenfolge des Einfügens ab, bleiben aber bei jedem Neustart gleich, solange die Geräte nicht an andere Ports verschoben oder während des Hochfahrens des Rechners ausgesteckt werden.
Wenn das erste Zeichen von inputspec ein "+" ist, fordert hal_input exklusiven Zugriff auf das Gerät an. Das erste Gerät, das einem I<inputspec> entspricht, wird verwendet. Es können beliebig viele inputspecs verwendet werden.
Jeder Eingabespezifikation kann eine Teilmengen (engl. subset)-Option> vorangestellt werden. Die Subset-Option beginnt mit einem Bindestrich. Jeder Buchstabe in der Subset-Option gibt ein Gerätemerkmal an, das einzubeziehen ist. Merkmale, die nicht angegeben sind, werden ausgeschlossen. Um zum Beispiel Tastatur-LEDs nach HAL zu exportieren, ohne Tasten zu exportieren, verwenden Sie
hal_input -L keyboard ...
UNTERSTÜTZTE GERÄTEFUNKTIONEN
-
EV_KEY (buttons and keys). Subset -K
-
EV_ABS (absolute analoge Eingänge). Subset -A
-
EV_REL (relative analoge Eingänge). Subset -R
-
EV_LED (LED-Ausgänge). Subset -L
HAL PINS UND PARAMETER
Für Schaltflächen (engl. buttons)
input.N.btn-name bit out
- input.N.btn-name-not bit out
-
Erstellt für jede Taste auf dem Gerät.
Für Tasten
input.N.key-name
- inputN.key-name-not
-
Wird für jede Taste des Geräts erstellt.
Für absolute Achsen
input.N.abs-name-counts s32 out
input.N.abs-name-position float out
input.N.abs-name-scale parameter float rw
input.N.abs-name-offset parameter float rw
input.N.abs-name-fuzz parameter s32 rw
input.N.abs-name-flat parameter s32 rw
input.N.abs-name-min parameter s32 r
- input.N.abs-name-max parameter s32 r
-
Wird für jede absolute Achse des Geräts erstellt. Gerätepositionen, die näher als flat an offset liegen, werden als offset in counts gemeldet, und counts ändert sich erst, wenn sich die Geräteposition um mindestens fuzz ändert. Die Position wird berechnet als position = (counts - offset) / scale. Die Standardwerte von scale und offset bilden den vom Betriebssystem gemeldeten Bereich der Achse auf [-1,1] ab. Die Standardwerte für fuzz und flat sind die vom Betriebssystem gemeldeten Werte. Die Werte von min und max sind die vom Betriebssystem gemeldeten Werte.
Für relative Achsen
input.N.rel-name-counts s32 out
input.N.rel-name-position float out
input.N.rel-name-reset bit in
input.N.rel-name-scale parameter float rw
input.N.rel-name-absolute parameter s32 rw
input.N.rel-name-precision parameter s32 rw
- input.N.rel-name-last parameter s32 rw
-
Wird für jede relative Achse des Geräts erstellt. Solange reset wahr ist, wird counts auf Null zurückgesetzt, unabhängig von jeder vergangenen oder aktuellen Achsenbewegung. Andernfalls erhöht oder verringert sich counts entsprechend der Bewegung der Achse. counts wird durch die Positionsskala geteilt, um position zu erhalten. Der Standardwert von B<Position> ist 1. Es gibt einige Geräte, vor allem Scrollräder, die vorzeichenbehaftete Werte mit einer geringeren Auflösung als 32 Bit zurückgeben. Der Standardwert für Präzision ist 32. Präzision kann für ein Gerät, das vorzeichenbehaftete 8-Bit-Werte liefert, auf 8 oder einen beliebigen anderen Wert zwischen 1 und 32 gesetzt werden. absolute, wenn auf true gesetzt, ignoriert doppelte Ereignisse mit demselben Wert. Dadurch können Geräte, die Ereignisse ohne jegliche Benutzeraktion wiederholen, korrekt funktionieren. last zeigt den letzten vom Gerät zurückgegebenen Zählwert an und wird bei der Implementierung von absolute verwendet.
Für LEDs
input.N.led-name bit out
- input.N.led-name-invert parameter bit rw
-
Wird für jede LED des Geräts erstellt.
BERECHTIGUNGEN UND UDEV
Standardmäßig dürfen die Eingabegeräte für normale Benutzer nicht zugänglich sein - hal_input erfordert Lese- und Schreibzugriff, auch wenn das Gerät keine Ausgänge hat.
Verschiedene Versionen von udev haben leicht unterschiedliche, inkompatible Syntaxen. Aus diesem Grund ist es für diese Handbuchseite nicht möglich, ein genaues Beispiel zu geben. Die Handbuchseite udev(7) dokumentiert die in Ihrer Linux-Distribution verwendete Syntax. Um sie in einem Terminal anzuzeigen, lautet der Befehl man 7 udev.
BUGS
Der Anfangszustand von Tasten, Schaltflächen und absoluten Achsen wird fälschlicherweise als FALSE oder 0 gemeldet, bis ein Ereignis für diese Taste, Schaltfläche oder Achse empfangen wird.
SIEHE AUCH
udev(8), udev(7)