Forum: PC Hard- und Software Wie funktioniert ein HID Eingabegerät unter Linux ?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von J. V. (janvi)


Lesenswert?

Habe eine Cherry G84 Tastatur mit Trackball

https://www.reichelt.de/tastatur-usb-hellgrau-kompakt-trackball-g84-5400lumde-0-p179130.html

und einen Verbatim PMT14/15/17 HDMI Bildschirm mit kapazitivem Touch

https://www.reichelt.de/43-9cm-monitor-16-9-full-hd-touch-usb-c-verbatim-49593-p349410.html


Beide Produkte glänzen nicht gerade mit auführlichen technischen 
Beschreibungen. Steckt man man die Cherry Tastatur unter W10 ein, so 
wird im Gerätemanager ein Verbundgerät enumeriert.
Es besteht als Maus/Zeigergerät aus einer HID konformen Maus im 
Microsoft kompatiblen Modus (msmouse.inf) und einer HID Tastatur 
(keyboard.inf).

Beim Verbatim Bildschirm wird es nun komplizierter weil meine Rechner 
keinen USB3 Hub haben. Video wird deshalb über ein normales HDMI Kabel 
eingesteckt und zusätzlich ein Kabel USB-C nach USB-A zur Verbindung von 
Bildschirm Stromversorgung und Touchscreen verbunden. Man kann die 
Stromversorgung auch über ein USB Steckernetzteil herstellen. In diesem 
Fall funktioniert dann der Touchscreen aber nicht.

Der kapazitive Touchscreen wird unter W10 ebenfalls als HID konforme 
Maus/Zeigergerät mit msmouse.inf enumeriert. Der Touchscreen 
funktioniert (leider) nur, wenn zum USB gleichzeitig auch ein 
Videosignal anliegt. Es gibt vermutlich auch Touchscreens welche über 
das SPI Signal der HDMI Verbindung arbeiten, was hier aber vermutlich 
nicht so ist.  Vermutlich braucht der Touchscreen die Information der 
akutellen Auflösung um arbeiten zu können. Der Bildschirm passt also 
nicht als reines USB-A Tablett an Rechnern welche nur ein Displayport 
haben.

Unter W10 funktionieren nun die Maus (Trackball in Tastatur) und der 
Bildschirm inkl. Touchscreen. Neu war für mich, daß Mäuse offenbar auch 
den Cursor ein und ausschalten können. Sobald man den Touch berührt, 
verschwindet der Cursor. Berührt man die Maus, wird der Cursor wieder 
sichtbar. Die Bedienung ist also über beide Eingabegeräte problemlos 
möglich. Die Verbatim Anleitung bescheinigt auch eine Kompabilität mit 
W10/11 sowie Android. Nachdem keinerlei Treiber benötigt werden, sollte 
man annehmen daß die Geräte als HID Klasse unter Linux ebenfalls 
problemlos funktionieren.

Das habe ich bislang aber leider nicht zum Laufen gekriegt. Als System 
habe ich ein Victron Cerbo GX (Raspberry Pi) mit Venus OS V3.0. Video 
funktioniert auf Anhieb und auch der Touchscreen über USB im Prinzip. 
Allerdings liegen die Touch Positionen  so grob daneben, daß eine 
Nutzung nicht wirklich möglich ist.

Verbindet man zusätzlich eine Maus, so erscheint ein Cursor welcher die 
Mausbedienung ermöglicht. Der Cursor verschwindet nun aber nach einiger 
Zeit und zwar ohne daß der Touchscreen berührt wird. Er kommt auch nicht 
wieder, wenn die Maus bewegt wird, sondern nur, wenn diese durch Aus und 
Einstecken von USB neu enummeriert wird. Fehlt die Touchscreen 
Verbindung, ist die Mausbedienung hingegen unbeeeinträchtigt.

Ich habe mir nun /etc/venus/headless angelegt und über ein SSH Terminal 
opkg install tslib-calibrate eingerichtet. Nach einem Reboot kann ich 
den Verbatim über ts_calibrate ansprechen. Der Touch reagiert aber in 
keinem Fall, so daß eine Kalibrierung nicht möglich ist. Das ist auch 
unabhängig ob eine zusätzliche Maus gesteckt ist oder nicht. Außer 
/dev/input/touchscreen1 kann ich nichts von Zeigergeräten feststellen 
und ich weis nicht wie ich weiter vorgehen kann um die Sache zum Laufen 
zu kriegen.

: Bearbeitet durch User
von Ingo W. (uebrig) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hier mal ein Beispiel für eine Tastatur mit SmartCard Leser.

von Herbert B. (Gast)


Lesenswert?

Evt. liegts an Powersafeinestellungen des USB-Gerätes.

Ich hatte neulich das Problem dass eine Mausbewegung den Rechner aus dem 
Standby wieder aufweckt was ich nicht will. Dazu muss man am entspr. 
USB-Gerät unter /sys/bus/usb die werte ändern. Bei kombigeräten wie 
Empfänger für Maus+Tastur kann man das auch für die Funkmaus und 
Funktastatur zwar einstellen bleibt aber wirkungslos, man muss es am 
Empfänger einstellen.

Schau dir mal die Powersafewerte der entspr. Geräte bevor und nachdem 
die Maus verschwunden ist und ob sie als Gerät überhaupt noch vorhanden 
ist.

Je nachdem was da passiert bastelst du dir dann eine udev regel die 
entspr.
settings setzt oder initierst einen usbbusscan damit die maus wieder 
gefunden und eingebunden wird.

von J. V. (janvi)


Angehängte Dateien:

Lesenswert?

Powersave am USB ist es nicht. Hier mal ein dmesg log beim booten. Die 
eingesteckte Maus funktionert, aber es ist kein Cursor sichtbar weil 
irgendwas  falsch gelaufen ist.

Ein Aus und Einstecken der Maus enumeriert diese neu und sie 
funktioniert dann mit Cursor dauerhaft.

Verbindet man denn den Touchscreen, veschwindet der Cursor nach kurzer 
Zeit wieder.

Hat da jemand eine Idee wie man vorgehen könnte ? Sorry für die lange 
Datei. Beim booten ist wohl das meiste uninteressant, habe es aber 
trotzdem drin gelassen weil man auch was vom Touchscreen Treiber sieht 
wo das möglicherweise durcheinanderbringt. Die erste Datei hat das 
falsche Format weil Windows gemeint hat es wäre ein bekanntes Format wo 
man die Dateierweiterung nicht anzuzeigen braucht. Habe es beim 
Bearbeiten hier im Forum nicht gelöscht gekriegt.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.