2012-10-29 2 views
8

Kurz gesagt, ich entwickle ein Embedded-System, das unter anderem eine Brücke von einem USB-Host-Port zu einem Geräte-Port benötigt (dies ist nur ein erster Schritt, später die übertragene Information) gefiltert und verändert werden).Bridge USB-Host zu Gerät

In Anbetracht dessen, dass dies im Grunde ein USB Snooper/Sniffer ist, dachte ich mir, dass jemand ein Modul dazu geschrieben haben sollte, aber meine Suche hat sich als sinnlos erwiesen.

Also, auf die Frage: Was ist der einfachste Weg, um einen USB-Host auf ein USB-Gerät in Linux umleiten? Die Daten müssen identisch sein, alle Deskriptoren und Endpunkte müssen übereinstimmen. Es muss Linux freundlich sein, kann ich in C/C-Code ++ und einige Erfahrung mit Codierung von Kernel-Modulen hat, Treiber usw.

+0

Grundsätzlich müssen Sie Ihren eigenen Treiber schreiben, der die Daten ein/aus verarbeiten soll. Sie sollten lernen, wie ein USB-Treiber unter Linux entwickelt werden kann. – garzanti

Antwort

5

I frühere Arbeiten bei http://www.elinux.org/BeagleBoard/GSoC/2010_Projects/USBSniffer

Der einfachste Weg zu umleiten eine USB-Host zu einem gefunden USB-Gerät in Linux ist meiner Meinung nach sowohl für den USB-Stack des Linux-Peripheriegeräts als auch für den Linux-Gadget-USB-Stack geeignet. 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 so mit dem Linux-Kernel umzugehen, muss es Linux-freundlich sein. Die Schnittstelle zu beiden Stacks ist (zumindest) in C verfügbar. Ihre Bedingungen sind also erfüllt.

+0

Vielen Dank für den Link, ich werde es später auschecken. Und grundsätzlich ja, ich ging ein wenig höher. Nicht so flexibel, aber ich wurde mit einigen ernsten Zeitbeschränkungen gedrängt. Wenn ich jemals in der Nähe bin, um das zu verbessern, würde ich auch so gehen. – user1783395