Estoy buscando una manera de que el Pi actúe como un cliente USB y se haga pasar por una unidad flash.
He visto muchas sugerencias, sin embargo, la mayoría de ellas son antiguas (1+ años) y vagas / incompletas. Me gustaría pedir una actualización sobre lo que funcionó, lo que no funcionó, etc.
También hay numerosas sugerencias para usar el Pi como dispositivo de tipo NAS. Esto no funcionará para mis propósitos, ya que tengo un host "tonto" que solo puede aceptar unidades flash (y quiero usar el Pi para hacerlo "más inteligente")
resumen de sugerencias que ya he visto:
- emular un cliente USB a través de los pines GPIO
- emule una conexión en serie a través de GPIO, luego use los cables existentes para pasar de serie a USB
- usando un modelo A, use software para convencer al pi de que actúe como un cliente
- usando un cable USB de host a host (no estoy seguro de haber visto alguno que admita Linux ...)
¿Alguien podría explicar más en profundidad algunas de esas soluciones propuestas?
PD: no necesito ni espero un alto rendimiento de esta configuración, las velocidades de USB 1.1 serían suficientes.
editar: También me interesaría cualquier alternativa que pudiera proporcionar esta funcionalidad, sin embargo, todavía no he visto ninguna memoria USB "inteligente" o variantes de Android en un dispositivo que puedan.
usbnet
conductor. Tienen una página que menciona algunos; parece anticuado, por lo que puede haber más ahora. Antes de comprar algo, consulte.Respuestas:
Tendría suerte si los puertos USB en el PI fueran OTG y no USB Host.
Tal vez debería considerar algún otro dispositivo, ya que ninguna de las soluciones que le han sugerido puede ser práctica:
emular un cliente USB a través de los pines GPIO: en teoría, es posible emular un USB mediante un golpe de bits en los pines. Esto puede causar una sobrecarga de software bastante grande en términos de desarrollo de software. La solución será relativamente difícil de implementar. En teoría es posible, pero debe hacer el análisis de costo / beneficio.
emule una conexión en serie a través de GPIO, luego use los cables existentes para pasar de serie a USB: esta solución no servirá a su propósito ya que usted (más bien su DUMB Host) querría una emulación de "Dispositivo de almacenamiento masivo" (tipo de dispositivo 0x08) y no Emulación de dispositivos "Comunicaciones y control de CDC" (tipo de dispositivo 0x02).
usando un modelo A, use software para convencer al pi de que actúe como un cliente: no está claro lo que le han sugerido
usando un cable USB de host a host (no estoy seguro de haber visto alguno que admita Linux ...): en este caso, ambos dispositivos verán un dispositivo de almacenamiento masivo conectado a su controlador de host. Con este método, su Raspberry pi se mostrará como un dispositivo de almacenamiento masivo que exporta el almacenamiento basado en su tarjeta SD. Con esta solución, es posible que desee considerar qué tipo de almacenamiento le gustaría exportar al host DUMB. Su host DUMB no puede exportarse a sí mismo como un dispositivo de almacenamiento masivo. En este punto, tendrá otras opciones de USB que no sean Raspberry Pi.
fuente
Ahora hay una variante Pi cero, que puede hacer lo que quería, y Adafruit hizo un tutorial para ello:
https://learn.adafruit.com/turning-your-raspberry-pi-zero-into-a-usb-gadget/overview
El nombre oficial para esto parece ser "sistema de dispositivo usb", y simplemente requiere un cable OTG.
No he podido probar esto, ya que los Pi zero están agotados en casi todas partes, pero creo que esta es actualmente la mejor ruta
fuente