Kurz gesagt, ich entwickle ein Embedded-System, das unter anderem eine Brücke von einem USB-Host-Port zu einem Device-Port benötigt (dies ist nur ein erster Schritt, später werden die übertragenen Informationen gefiltert und geändert). .
Wenn man bedenkt, dass dies im Grunde genommen ein USB-Snooper / Sniffer ist, dachte ich mir, dass jemand ein entsprechendes Modul geschrieben haben sollte, aber meine Suche hat sich als sinnlos erwiesen.
Also zur Frage: Was ist der einfachste Weg, einen USB-Host auf ein USB-Gerät in Linux umzuleiten? Die Daten müssen identisch sein, alle Deskriptoren und Endpunkte müssen übereinstimmen. Es muss Linux-freundlich sein, ich kann in C / C ++ programmieren und habe etwas Erfahrung mit der Programmierung von Kernel-Modulen, Treibern, etc.
Ich habe frühere Arbeiten bei Ссылка
gefundenDie einfachste Möglichkeit, einen USB-Host auf ein USB-Gerät in Linux umzuleiten, ist meiner Meinung nach sowohl der USB-Stack des Linux-Peripheriegeräts als auch der Linux-Gadget-USB-Stack. Diese Stacks kümmern sich um den niedrigen Level, also sollte Ihr Code nur High-Level-Interfaces zwischen diesen beiden Stacks betreffen. Zusätzlicher Bonus ist, dass der Sniffer (via USBMon) fast kostenlos kommt.
Da es sich um den Linux-Kernel handelt, muss es Linux-freundlich sein. Die Schnittstelle zu beiden Stacks ist (zumindest) in C verfügbar. Ihre Bedingungen sind also erfüllt.