Ich habe einen Acer-Touchscreen mit USB-Anschluss, der nur dann mit dem Raspi zusammenarbeitet, wenn eine USB1.1-Verbindung besteht. Stecke ich den Bildschirm direkt an den Raspberry, wird lediglich ein Hub erkannt.
Durch Zwischenstecken eines alten USB-Hub oder z.B. zweier Adapter USB-LAN-USB lässt sich das eindeutig verifizieren. Blöd nur, dass beide Maßnahmen Platz erfordern, der eigentlich nicht da ist.
Das Einfachste wäre sicher eine geeignete Konfiguration auf dem Raspi, die die USB-Hardware dazu zwingt.
Alternativ: Gibts irgend eine Widerstands/Dioden oder RC-Kombi im USB-Kabel, was die gleichen Folgen hätte?
Kennt jemand einen erfolgversprechenden Trick? Danke.
Es handelt sich um einen Raspi 3B+. Alle Varianten von Warm- und Kaltstart mit und ohne angestecktem Touch haben keine Lösung gebracht, nur das Zwischenschalten eines USB1.1-Devices.
Vielleicht spielt das Netzteil nicht mit.
Welches Netzteil benutzt du ?
Ein 2,5A Steckernetzteil mit USB-Anschluss, speziell für Raspi geamcht.
Aber der Einfluss des USB1.1-Hub bzw. LAN-Adapters ist eindeuting. Eine entsprechende "Lösung" findet sich auch auf Stackoverflow. Ich würde nur gerne auf das zusätzliche Gedöns verzichten.
Und statt von 1.1 spricht man da wohl eher von "Low speed device".
Das ist so nicht richtig; USB 1.1 definiert sowohl "Low Speed" (mit 1.5 MBit/sec) als auch "High Speed" (mit 12 MBit/sec).
Die meisten HID-Geräte sind "Low Speed"-Geräte, aber die funktionieren an /jedem/ Raspberry Pi. Sonst könnte man nämlich keine USB-Tastaturen oder -Mäuse benutzen, die sind Low-Speed-Geräte.
Dieser Touchscreen hier muss also irgendwas merkwürdiges machen, was andere HID-Geräte nicht anstellen.
Mal an einem Windows-Rechner anschließen und mit dem Usb Device Tree Viewer von Uwe Sieber ansehen, wie genau sich dieses Gerät verkauft.
Das sollte als Information wirklich reichen, da braucht's kein Windows. Und mit einem kleinen Trick kann man sich auch noch den HID Deskriptor anzeigen lassen.
Das sollte als Information wirklich reichen, da braucht's kein Windows.
Wenn man einen PC hat, auf dem was anderes läuft, kann man auch was anderes nehmen. Auf dem Pi wird das nicht funktionieren, denn da funktionierts ja nicht.
Du könntest Dir auch das hier durchlesen, damit ging das Thema nämlich
los:
Beitrag "Acer ACER T272HL - keine Touch-Funktion"
Zusammenfassung:
Entweder in der Firmware des Monitors oder im Raspi steckt ein Bug, der verhindert, dass der Touchscreen am Raspberry "einfach so" erkannt wird. Ändert man keine Einstellungen, erscheint das USB-System des Acer lediglich als HUB (hat er auch drin), von Touch bzw. HID keine Spur.
Entweder durch Zwischenschalten eines physikalischen USB1.1-Devices oder, wie nun herausgefunden, durch Setzen des Raspberry auf 1.1 kommt eine Zusammenarbeit zustrande.
Entweder in der Firmware des Monitors oder im Raspi steckt ein Bug, der
verhindert, dass der Touchscreen am Raspberry "einfach so" erkannt wird.
Ändert man keine Einstellungen, erscheint das USB-System des Acer
lediglich als HUB (hat er auch drin), von Touch bzw. HID keine Spur.
Interessant.
Vielleicht sind die HID Geräte ›dahinter‹ noch nicht so schnell nach dem Einstecken zu einer Antwort fähig. Man könnte per ›udevadm trigger …‹ auf den gefundenen Hub-Zweig noch einmal ein Refresh auslösen.
Keine Garantie das es etwas bringt, aber kostet auch nichts.
Entweder durch Zwischenschalten eines physikalischen USB1.1-Devices
oder, wie nun herausgefunden, durch Setzen des Raspberry auf 1.1 kommt
eine Zusammenarbeit zustrande.
Ja, das macht alles langsamer, könnte zum Fehlerbild passen.
Edit: rescan (über ›/sys/devices/…‹) auf dem HUB-Zweig wäre noch eine weitere Option.
Auf der Host-Seite (also im Raspi) gibt es jeweils einen Hostcontroller für USB 1 und einen für USB 2 und folgende, also für die höheren Geschwindigkeiten. Je nachdem was am Rootport angeschlossen wird, wird der eine oder der andere Host auf diesen Port geschaltet.
Daraus ergibt sich manchmal wirklich spaßiges Verhalten, denn die Hostcontroller haben verschiedene Treiber, die unterschiedliche Bugs haben können.
Ich kenne z.B. diesen Spaß von Intel Extensible Hostcontroller, bei dem der schnelle Hostcontroller mit dem Windows-Treiber nicht in der Lage ist mit Geräten umzugehen die mehr als 6 Interfaces haben. Da muss das Device (wenn es low oder full speed) direkt an den Host-Port, oder hinter einen USB 1 Hub.