Je cherche un moyen pour que le Pi agisse comme un client USB et se fasse passer pour un lecteur flash.
J'ai vu beaucoup de suggestions, mais la plupart d'entre elles sont maintenant anciennes (1+ ans) et vagues / incomplètes - je voudrais demander un rafraîchissement quant à ce qui a fonctionné, ce qui n'a pas fonctionné, etc.
Il existe également de nombreuses suggestions pour utiliser le Pi comme périphérique de type NAS à la place. Cela ne fonctionnera pas pour mes besoins, car j'ai un hôte "stupide" qui ne peut accepter que des lecteurs flash (et je veux utiliser le Pi pour le rendre "plus intelligent")
résumé des suggestions que j'ai déjà vues:
- émuler un client USB via les broches GPIO
- émuler une connexion série via GPIO, puis utiliser les câbles existants pour passer de série à USB
- en utilisant un modèle A, utilisez un logiciel pour convaincre le pi d'agir comme un client
- en utilisant un câble USB d'hôte à hôte (je ne suis pas sûr d'en avoir vu qui prennent en charge Linux ..)
quelqu'un pourrait-il expliquer plus en profondeur certaines de ces solutions proposées?
PS - Je n'ai pas besoin ni ne m'attends à des performances élevées avec cette configuration, les vitesses USB 1.1 seraient suffisantes.
edit: Je serais également intéressé par toutes les alternatives qui pourraient fournir cette fonctionnalité, mais je n'ai encore vu aucune clé USB "intelligente" ou variante android-on-a-stick qui le puisse.
usbnet
conducteur. Ils ont une page en mentionnant certains; il semble obsolète, il y en a peut-être plus maintenant. Avant d'acheter quoi que ce soit, vérifiez autour.Réponses:
Vous auriez de la chance si les ports USB du PI étaient OTG et non USB Host.
Vous devriez peut-être envisager un autre appareil car aucune des solutions qui vous ont été suggérées ne peut être pratique:
émuler un client USB via les broches GPIO: En théorie, il est possible d'émuler l'USB en utilisant le bit-banging des broches. Cela peut entraîner une surcharge logicielle assez importante en termes de développement logiciel. La solution sera relativement difficile à mettre en œuvre. En théorie, c'est possible, mais vous devez faire l'analyse coûts / avantages.
émuler une connexion série via GPIO, puis utiliser les câbles existants pour passer de série à USB: cette solution ne servira pas votre objectif car vous (plutôt votre hôte DUMB) voudriez une émulation "Mass Storage Device" (type de périphérique 0x08) et non un Émulation de périphérique "Communications and CDC Control" (type de périphérique 0x02).
en utilisant un modèle A, utilisez un logiciel pour convaincre le pi d'agir comme un client: ne savez pas ce qui vous a été suggéré
en utilisant un câble USB d'hôte à hôte (je ne suis pas sûr d'en avoir vu qui prennent en charge Linux ..): Dans ce cas, les deux appareils verront un périphérique de stockage de masse connecté à leur contrôleur hôte. En utilisant cette méthode, votre Raspberry pi apparaîtra comme un périphérique de stockage de masse exportant le stockage basé sur votre carte SD. Avec cette solution, vous pouvez envisager le type de stockage que vous souhaitez exporter vers l'hôte DUMB. Votre hôte DUMB peut ne pas s'exporter en tant que périphérique de stockage de masse. À ce stade, vous aurez d'autres options USB autres que Raspberry Pi.
la source
Il existe maintenant une variante Pi zéro, qui peut faire ce que je voulais, et Adafruit en a fait un tutoriel:
https://learn.adafruit.com/turning-your-raspberry-pi-zero-into-a-usb-gadget/overview
Le nom officiel de ceci semble être "système de gadget USB", et nécessite simplement un câble OTG.
Je n'ai pas pu tester cela, car les Pi Zero sont en rupture de stock à peu près partout, mais je pense que c'est actuellement la meilleure voie
la source