Pi als USB-Client


16

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:

  1. Emulieren Sie einen USB-Client über die GPIO-Pins
  2. emulieren Sie eine serielle Verbindung über GPIO und verwenden Sie dann vorhandene Kabel, um von seriell zu USB zu wechseln
  3. Verwenden Sie mithilfe eines Modells A eine Software, um das Pi davon zu überzeugen, sich wie ein Client zu verhalten
  4. 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.


1
Es gibt definitiv Kabel, die Linux unterstützt; Dies ist Teil des Ziels mit dem usbnetFahrer. 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.
— Goldlöckchen

Einige Anmerkungen zu Modell A dazu hier
— Goldlöckchen

: Sie können auch solche Projekte wie usbip finden stackoverflow.com/a/19689740/544721 oder linux-usb.org/gadget nützlich bei der Montage Lösung.
— Grzegorz Wierzowiecki

Antworten:


6

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.


Welche anderen Geräte würden Sie empfehlen? (Ich hoffe auf etwas mit WiFi und die Fähigkeit, Dropbox oder bittorent Sync oder etwas ähnliches
— auszuführen

Ihre Bedürfnisse bezüglich der Wartung des DUMB-Hosts sind ziemlich unklar. Mehr Klarheit ist erforderlich.
— Chetan Bhargava

2
OK, heute habe ich ein Flash-Laufwerk in meinem Auto, das MP3s wiedergibt - wenn ich die Musik darauf ändern möchte, muss ich das Flash-Laufwerk physisch bewegen - ich möchte einfach ein Gerät mit etwas auf meinem Desktop synchronisieren und präsentieren eine USB-Schnittstelle für das Auto - auch der USB-Anschluss am Modell A Pi ist ein OTG-Chip (und am Modell B, aber der Ethernet-Anschluss deaktiviert diese Funktionalität) - Quelle
— Benutzer2813274

Gehen wir zum Chat (Bäckerei), damit wir den Beitrag nicht mit Kommentaren überladen :-)
— Chetan Bhargava

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.