Ich suche nach einer Möglichkeit, den Pi als USB-Client und als Flash-Laufwerk zu maskieren.
Ich habe viele Vorschläge gesehen, aber die meisten davon sind mittlerweile alt (1+ Jahre) und vage / unvollständig. Ich möchte um eine Erneuerung bitten, was funktioniert hat, was nicht usw.
Es gibt auch zahlreiche Vorschläge, den Pi stattdessen als NAS-Gerät zu verwenden. Dies wird für meine Zwecke nicht funktionieren, da ich einen "dummen" Host habe, der nur Flash-Laufwerke akzeptieren kann (und ich möchte den Pi verwenden, um ihn "smarter" zu machen).
Zusammenfassung der Vorschläge, die ich bereits gesehen habe:
- Emulieren Sie einen USB-Client über die GPIO-Pins
- emulieren Sie eine serielle Verbindung über GPIO und verwenden Sie dann vorhandene Kabel, um von seriell zu USB zu wechseln
- Verwenden Sie mithilfe eines Modells A eine Software, um das Pi davon zu überzeugen, sich wie ein Client zu verhalten
- Verwenden eines Host-zu-Host-USB-Kabels (ich bin mir nicht sicher, ob Linux unterstützt wird.)
Kann jemand einige dieser Lösungsvorschläge genauer erläutern?
PS - Ich brauche und erwarte keine hohe Leistung für diese Konfiguration, USB 1.1-Geschwindigkeiten wären ausreichend.
edit: Ich wäre auch an Alternativen interessiert, die diese Funktionalität bieten könnten, aber ich habe noch keine "intelligenten" USB-Sticks oder Android-on-a-Stick-Varianten gesehen, die dies können.
usbnet
Fahrer. Sie haben eine Seite , auf der einige erwähnt werden; es sieht veraltet aus, also kann es jetzt mehr geben. Bevor Sie etwas kaufen, schauen Sie sich um.Antworten:
Sie hätten Glück, wenn die USB-Anschlüsse am PI OTG und nicht USB Host wären .
Vielleicht sollten Sie ein anderes Gerät in Betracht ziehen, da keine der vorgeschlagenen Lösungen praktisch sein kann:
Einen USB-Client über die GPIO-Pins emulieren: Theoretisch ist es möglich, USB durch Bit-Banging der Pins zu emulieren. Dies kann einen ziemlich großen Software-Overhead in Bezug auf die Softwareentwicklung verursachen. Die Lösung wird relativ schwer zu implementieren sein. Theoretisch ist dies möglich, Sie müssen jedoch die Kosten-Nutzen-Analyse durchführen.
Emulieren Sie eine serielle Verbindung über GPIO, und verwenden Sie dann vorhandene Kabel, um von seriell zu USB zu wechseln : Diese Lösung erfüllt nicht Ihren Zweck, da Sie (stattdessen Ihr DUMB-Host) eine "Massenspeichergerät" -Emulation (Gerätetyp 0x08) und nicht eine Emulation wünschen Geräteemulation "Communications and CDC Control" (Gerätetyp 0x02).
Verwenden Sie mithilfe eines Modells A eine Software, um das Pi davon zu überzeugen, sich wie ein Kunde zu verhalten : Unklar, was Ihnen vorgeschlagen wurde
Verwenden eines Host-zu-Host-USB-Kabels (nicht sicher, ob Linux unterstützt wird): In diesem Fall wird auf beiden Geräten ein Massenspeichergerät angezeigt, das an den Host-Controller angeschlossen ist. Mit dieser Methode wird Ihr Raspberry pi als Massenspeichergerät angezeigt, das Ihren SD-Speicherkarten-basierten Speicher exportiert. Mit dieser Lösung möchten Sie möglicherweise überlegen, welche Art von Speicher Sie auf den DUMB-Host exportieren möchten. Ihr DUMB-Host exportiert sich möglicherweise nicht selbst als Massenspeichergerät. Zu diesem Zeitpunkt haben Sie andere USB-Optionen als Raspberry Pi.
quelle
Es gibt jetzt eine Pi-Zero-Variante, die machen kann, was ich wollte, und Adafruit hat ein Tutorial dafür erstellt:
https://learn.adafruit.com/turning-your-raspberry-pi-zero-into-a-usb-gadget/overview
Der offizielle Name hierfür scheint "USB-Gadget-System" zu sein und erfordert lediglich ein OTG-Kabel.
Ich konnte dies nicht testen, da Pi-Zero-Modelle fast überall ausverkauft sind, aber ich denke, dass dies derzeit die beste Route ist
quelle