Hallo zusammen, ich möchte von einem Embedded Linux einen USB-HID-Device per HID-Gadget-Treiber an einem OTG-Port zur Verfügung stellen. Soweit kein Problem. Um die Entwicklung zu vereinfachen (das Protokoll lässt sich dann schneller implementieren) wollte ich dies auf meinem herkömmlichen Linux PC (Debian Bullseye) vorbereiten. So wie ich das gesehen habe, scheinen die USB-Controller im PC keinen Device- bzw. OTG-Modus zu besitzen. Somit kann man den HID-Gadget-Treiber auch nicht laden. Gibt es eine Möglichkeit eine solche Schnittstelle am PC "nachzurüsten"? Hat das schon mal jemand in der Richtung gemacht? Grüße Benny
Sowas gab es mal, war aber sehr teuer (so 300$), aber der passende USB Device Controller Chip ist längst abgekündigt. fchk
Diverse SBC's wie Raspberry oder BeagleBone sollten das doch auch können, oder? Damit kann man das recht günstig ausprobieren.
Niklas G. schrieb: > Diverse SBC's wie Raspberry oder BeagleBone sollten das doch auch > können, oder? Damit kann man das recht günstig ausprobieren. Hat er ja. Er wollte das aber auf einem PC haben. Ich habe die Boards gefunden: http://www.bplus.com.tw/Adapter/PP2380-AB.html http://www.bplus.com.tw/Adapter/PP3380-AB.html Das sind PCIe USB Device Controller mit USB-B Buchse. Genau das willst Du haben. Viel Glück beim Organisieren. fchk
Frank K. schrieb: > Hat er ja. Er wollte das aber auf einem PC haben. Diese SBCs lassen sich aber fast wie ein PC benutzen, mit Monitor, Compiler etc. Sind halt nur langsamer.
Benny schrieb: > Gibt es eine Möglichkeit eine > solche Schnittstelle am PC "nachzurüsten"? Im Prinzip schon. Das hier https://www.analog.com/media/en/technical-documentation/data-sheets/MAX3421E.pdf ließe sich mit einer USB-SPI-Bridge kombinieren, wie z.B. https://ftdichip.com/products/ft4222h/ Dann musst Du "nur noch" eine Treiberschicht auf Deinem PC schreiben, die z.B. über die FTDI-DLL mit dem FT4222h redet und darüber via SPI den USB-Devicecontroller ansteuert. Kann man machen, ist halt ... mühsam.
Frank K. schrieb: > Niklas G. schrieb: >> Diverse SBC's wie Raspberry oder BeagleBone sollten das doch auch >> können, oder? Damit kann man das recht günstig ausprobieren. > > Hat er ja. Er wollte das aber auf einem PC haben. Naja, mittels ssh und sshfs kann man den Pi schon so an den PC anbinden dass man kaum mehr merkt, dass das zu testende Tool auf dem Pi läuft. Sogar die IDE und der Compiler können auf dem PC laufen (wobei mir die Einrichtung eines Crosscompilers zu umständlich wäre).
Hallo und vielen Dank für die zahlreichen Antworten. @Frank: Jaaaaa genau sowas hatte ich gesucht. Die USB-2.0-Version werde ich gleich mal bestellen. Die Entwicklung auf dem SBC durchzuführen, möchte ich gerne vermeiden. Klar, SSHFS usw. machen das alles recht einfach, aber das vorrangige Ziel ist eindeutig, dass die Entwicklung auf meinem PC läuft. Deswegen werde ich das erstmal mit der PCIe-Karte testen. Ich hoffe, das mit den Treibern unter Linux wird kein großes Problem. Als Fallback bietet sich auch socat an, was dann auf einem SBC laufen würde. Ich habe das kurz mal mit einem beliebigen hidraw-Device über localhost getestet und bin relativ zufrieden für eine Zweitlösung. Socat Server: sudo socat tcp-l:4001,fork,keepalive,nodelay,reuseaddr /dev/hidraw5 Socat Device: sudo socat pty,link=/dev/lio0,nonblock,raw,echo=0,ignoreof,waitslave tcp:localhost:4001 Dann konnte mit dem /dev/lio-Device eigentlich alles machen. Damit könnte ich dann das hidraw-Device per Netzwerk auf meinen PC tunneln. Quelle: https://www.lucid-control.com/accessing-usb-io-module-network-linux-socat/ Die Lösung vom Harald ist mir auch schon über den Weg gelaufen, ist aber sehr kompliziert. Ich würde erstmal davon Abstand nehmen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.