"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Ubuntu: Frage zu installation eines Multitouch Monitor Treibers

matiss 13.05.2022 - 12:39 3716 6
Posts

matiss

Chaos Maestro
Avatar
Registered: Dec 2007
Location: Vienna
Posts: 693
Hallo,

spiel mich gerade mit eine Iiyama 27" Touch rum. Dieser wird sowohl bei Windows als auch Linux (Ubuntu) als "Generic HID" erkannt was bei beiden dazu führt das eventuelle Optionen für Touch/Tablet Betrieb vom Betriebssystem nicht angezeigt werden.
Bin jetzt mal bei Ubuntu geblieben da ich es hier soweit geschafft habe die Multitouch Gesten zu deaktivieren unter anderem mit GnomeShellExtension. Würde das aber gerne noch verbessern da das Plugin "überlastet" werden kann und dann entweder Firefox abstürzt oder die Geste ausgeführt wird. Auch wenn man es nur eine kleine Chance ist ist es blöd für ein Kiosk System.

Auf der Iiyama Seite gibt es für Linux und Android einen Patch. Hab mir den mal runter geladen aber ich muß leider eingestehen ich steh gerade am Schlauch was ich mit dem jetzt machen soll. Das einzigste das ich finde ist Kernel selber patchen/kompilieren was nicht unbedingt ein gewünschter Lösungsweg ist da das System auch von "Linux Laien" gewartet werden soll.

Hier mal der Code aus den .patch Files, vielleicht habt ihr eine Idee wie ich das besser löse.

Code:
*** hid-ids.org	2013-10-01 21:40:12.819305841 +0900
--- hid-ids.h	2013-10-01 19:14:38.185951289 +0900
***************
*** 865,868 ****
--- 865,871 ----
  #define USB_VENDOR_ID_PRIMAX	0x0461
  #define USB_DEVICE_ID_PRIMAX_KEYBOARD	0x4e05
  
+ #define USB_VENDOR_ID_SHARP	0x04DD
+ #define USB_DEVICE_ID_LR388K4	0x9570
+ 
  #endif

Code:
*** hid-multitouch.org	2013-10-01 21:40:20.459305500 +0900
--- hid-multitouch.c	2013-10-01 21:39:27.671307854 +0900
***************
*** 123,128 ****
--- 123,130 ----
  #define MT_CLS_GENERALTOUCH_TWOFINGERS		0x0108
  #define MT_CLS_GENERALTOUCH_PWT_TENFINGERS	0x0109
  
+ #define MT_CLS_SHARP                            0x010A
+ 
  #define MT_DEFAULT_MAXCONTACT	10
  #define MT_MAX_MAXCONTACT	250
  
***************
*** 217,222 ****
--- 219,229 ----
  			MT_QUIRK_SLOT_IS_CONTACTNUMBER
  	},
  
+ 	{ .name	= MT_CLS_SHARP,
+ 		.quirks = MT_QUIRK_NOT_SEEN_MEANS_UP |
+ 			MT_QUIRK_SLOT_IS_CONTACTID
+ 	},
+ 
  	{ .name = MT_CLS_FLATFROG,
  		.quirks = MT_QUIRK_NOT_SEEN_MEANS_UP |
  			MT_QUIRK_NO_AREA,
***************
*** 1171,1176 ****
--- 1178,1188 ----
  		MT_USB_DEVICE(USB_VENDOR_ID_ZYTRONIC,
  			USB_DEVICE_ID_ZYTRONIC_ZXY100) },
  
+ 	{ .driver_data = MT_CLS_SHARP,
+ 		MT_USB_DEVICE(USB_VENDOR_ID_SHARP,
+ 			USB_DEVICE_ID_LR388K4) },
+ 
+ 
  	/* Generic MT device */
  	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_MULTITOUCH, HID_ANY_ID, HID_ANY_ID) },
  	{ }
Bearbeitet von matiss am 13.05.2022, 12:44

COLOSSUS

Administrator
Frickler
Avatar
Registered: Dec 2000
Location: ~
Posts: 11892
Ich kenne mich mit USB und HIDs im Kernel auch nicht im Detail aus, aber der Patch sieht so aus, als wuerde man eine Device-ID, von der Linux mainline nix weisz, nachtragen, und fuer Geraete mit dieser USB-ID zwei "Quirks" (das sind Mechanismen, die man mit Bauchweh fuer bestimmte Geraete aktiviert, die in irgendeiner Form defekt bzw. nicht den Definitionen gewisser Standards entsprechend sind) einschalten.

Unverstaendlich fuer mich ist, warum Sharp diesen trivialen Fix fuer ihren Ramsch offenbar nicht zu upstreamen versucht hat. Echt idiotisch!

Mittlerweile gibt es die Moeglichkeit, diese Quirks auch zur Laufzweit bzw. beim Laden eines Moduls zu erwirken, aber da muss ich mich erst einlesen... evtl. kann dir ohne eigenes Kernel Image geholfen werden. Sowas wird ja auch immer muehsamer zu machen, wegen der unnedigen Secure Boot-Seuche.

Zeigst du mit bitte mal den Output von `lsusb`, wenn der Touchscreen angesteckt ist?

matiss

Chaos Maestro
Avatar
Registered: Dec 2007
Location: Vienna
Posts: 693
Hallo, danke schonmal, habs leider erst heute geschafft wieder dran zu kommen. Hier das lsusb, eines mit -v hab ich auch gemacht falls das benötigt wird.

Code:
Bus 002 Device 002: ID 8087:8000 Intel Corp. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 009: ID 046d:c077 Logitech, Inc. M105 Optical Mouse
Bus 003 Device 008: ID 045e:0752 Microsoft Corp. Wired Keyboard 400
Bus 003 Device 004: ID 2575:0402  
Bus 003 Device 002: ID 2245:1500  
Bus 003 Device 005: ID 18a5:0302 Verbatim, Ltd Flash Drive
Bus 003 Device 003: ID 04b4:120f Cypress Semiconductor Corp. LANBE_KVM47
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Der Stick war von mir um die txt runter zu kopieren und der KVM ist genau das. Warum jetzt zwei unbekannte sind ist mir gerade schleierhaft. Kann aber sein das Ubuntu auch den durchgeschliffenen USB des Extenders erkennt.
Bearbeitet von matiss am 18.05.2022, 10:07

othan

Layer 8 Problem
Avatar
Registered: Nov 2001
Location: Switzerland
Posts: 4203
Zitat aus einem Post von matiss
Bus 003 Device 004: ID 2575:0402

Das sollte der Touchscreen sein -> https://linux-hardware.org/index.php?id=usb:2575-0402

Scheint seit der Steinzeit (Kernel 2.6x) unterstützt zu sein.

COLOSSUS

Administrator
Frickler
Avatar
Registered: Dec 2000
Location: ~
Posts: 11892
Probier mal das hier:

Code:
sudo rmmod usbhid; sudo modprobe -v usbhid "quirks=0x2575:0x0402:0x0003"

(Mit viel Pech funktionieren danach keine USB-Eingabegeraete mehr - idealerweise hast du also Zugriff auf das OS via SSH, bevor du das ausprobierst.)

matiss

Chaos Maestro
Avatar
Registered: Dec 2007
Location: Vienna
Posts: 693
Danke werd ich morgen probieren nachdem ich SSH aktiviert habe ;)

COLOSSUS

Administrator
Frickler
Avatar
Registered: Dec 2000
Location: ~
Posts: 11892
Rebooten per ACPI-PowerOff und danach PowerOn ist auch gut genug ;)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz