Servir archivos a través de USB

12

Me gustaría poder servir una sección del sistema de archivos de mi caja a través de USB a otra computadora. Por ejemplo, si los archivos están en el cuadro A y estoy leyendo desde el cuadro B, entonces B montaría A, vería esos archivos y los montaría como un dispositivo de sistema de archivos (es decir, como una unidad de memoria USB).

Idealmente, la solución funcionaría para cualquier distribución de Linux, pero lo más probable es que la ejecute en variantes de Debian.

Avíseme si necesita más información. Salud.

Sam Bisbee
fuente
44
No puede simplemente conectar dos computadoras con un cable USB: el protocolo eléctrico USB no es simétrico y requiere una computadora en un extremo y un dispositivo periférico en el otro extremo (es por eso que los enchufes no son los mismos). ¿Ya tiene un dispositivo de hardware específico que desea usar? De lo contrario, Ethernet (o Firewire) se adaptaría mejor para crear una red entre las dos computadoras.
Gilles 'SO- deja de ser malvado'
2
@Gilles - Gracias por la respuesta. Por su respuesta, supongo que mi pregunta es realmente cómo hacer que mi computadora se vea y / o actúe como un dispositivo periférico a través de su conexión / hub USB. ¿Qué separa un dispositivo periférico y una máquina host? Salud.
Sam Bisbee

Respuestas:

11

De la información que ha dado, supongo que:

  1. Tiene un dispositivo de caja negra con el que solo puede comunicarse conectando un dispositivo de almacenamiento masivo USB.
  2. No es aceptable conectar y desconectar físicamente una unidad USB, no tendrá acceso físico después de la implementación.

Si alguno de estos supuestos es falso, será más fácil.

Lo que está buscando es una forma de hacer que una computadora aparezca como un dispositivo de almacenamiento USB. En principio, esto no debería requerir mucha electrónica: creo que el dispositivo correcto podría ser producido en masa por no más de un par de dólares más gastos de envío. Pero no puedo encontrar una referencia al gadget correcto existente.

El simple hecho de usar un cable USB de computadora a computadora no funcionará: simulan una red Ethernet y la caja negra no habla Ethernet. Y los convertidores de almacenamiento USB a LAN no ayudarán, van al revés.

  1. Podría diseñar un brazo robótico que desconecte una memoria USB de la caja negra y la conecte a una computadora. Ahora que se ha hecho la sugerencia obvia pero poco práctica ...

  2. Podría diseñar el dispositivo y escribir un controlador para él. Pero esto podría estar fuera de su rango de precios, especialmente si no necesita millones de unidades.

  3. Puede haber un dispositivo NAS sofisticado que pueda comunicarse con varias computadoras a través de iSCSI y USB (esas dos últimas palabras son la parte difícil).

  4. Algunos teléfonos móviles y PDA pueden actuar como un dispositivo de almacenamiento USB y, además, tienen una conexión GSM, wifi o Ethernet. Pero a menudo actúan como dispositivos de almacenamiento solo cuando están apagados, por lo que no sé si hay uno que pueda usarse como puente o servidor.

  5. Aquí hay una discusión sobre un requisito algo similar. La única solución posible que sugiere es este puente de almacenamiento USB a wifi , que parece adecuado, pero es costoso.

  6. Hay conmutadores USB (también conocidos como centros de intercambio) que le permiten compartir un dispositivo USB entre dos computadoras. Puede usar uno para compartir un dispositivo de almacenamiento entre la caja negra y una computadora. El problema es que generalmente requieren que el usuario presione un botón para cambiar entre los dos dispositivos, pero si encuentra uno donde el interruptor se puede controlar de forma remota, tiene una solución.

Gilles 'SO- deja de ser malvado'
fuente
Gracias por su muy reflexiva respuesta Gilles. Tienes razón en tus suposiciones. El puente PDA / móvil es una idea genial en la que tendré que pensar un poco más. Las otras ideas, que parecen estar centradas principalmente en LAN o robot, están fuera de discusión porque no hay LAN en el entorno. Voy a tratar de reunir algunos POC e informaré en un día o dos. ¡Gracias de nuevo!
Sam Bisbee
2

Creo que esto se puede lograr con un cable USB de host a host y el controlador usbnet de Linux. La compatibilidad del hardware y los detalles sobre cómo configurar esto en Linux se encuentran en: http://www.linux-usb.org/usbnet/

Riccardo Murri
fuente
3
Eso es Ethernet a través de USB, lo cual está bien si el dispositivo lo admite ... pero tengo la impresión de que no.
Gilles 'SO- deja de ser malvado'
@Gilles - Tienes razón, no creo que la caja negra hable de Ethernet. Dicho esto, la caja negra aún podría captar y hacer algo de magia si simplemente detecta que hay una conexión USB (a través del cable de A a A). Lo descubriré en un día o dos. Salud.
Sam Bisbee
Bueno, supongo que al menos los dispositivos enumerados en la página del controlador deberían ser compatibles ...
Riccardo Murri
-1

¿Realmente no veo cómo cabe USB aquí? ¿Por qué no usa SAMBA o NFS para compartir los archivos entre esas máquinas? Tal vez eso no funcione por alguna razón, por lo que probablemente debería agregar un poco más de explicación ...

tante
fuente
Esos protocolos no funcionarán porque la máquina lectora no está habilitada para redes. El único punto de E / S que tengo es USB, que observa y lee archivos. En el entorno final sin prueba, no podré controlar la máquina lectora (ni siquiera conozco su software), pero tomará mis archivos. ¡Gracias!
Sam Bisbee
-1

Incluso si resuelve los problemas específicos de USB, como hacer que un host USB parezca un dispositivo USB, tendrá problemas para montar el sistema de archivos en dos dispositivos diferentes al mismo tiempo.

Si el Cuadro A tiene una unidad (digamos / dev / sdb1) y está montada y utiliza los archivos en / dev / sdb1, ¿qué sucede cuando los montajes del Cuadro B desean acceder a esos archivos? En el nivel más bajo, USB va a querer tratar con un dispositivo, no con un sistema de archivos.

kbyrd
fuente
3
Si se resuelve el problema de hardware, probablemente haya una forma de poner un bloqueo de acceso para que solo un lado pueda escribir a la vez y que los accesos de lectura obtengan una vista coherente. Algunas soluciones solo permitirán que una computadora acceda al almacenamiento de todos modos. Entonces sí, esto es una preocupación, pero no abrumadora.
Gilles 'SO- deja de ser malvado'
Va a ser terriblemente difícil hacer esto sin montar y desmontar el sistema de archivos en el cuadro A mientras se accede a él en el cuadro B (y viceversa). La mayoría de los sistemas de archivos normales (sin clúster) tienen todo el derecho de asumir que los bits en el disco que han montado no cambian debajo de ellos. Un montón de estructuras en memoria no estarán sincronizadas. O lo necesario para montar / desmontar cuando se cambia entre A y B, o conseguir la cooperación de (es decir, escribir un nuevo sistema de archivos) el conductor sistema de ficheros en las cajas A y B.
kbyrd