¿Es posible la transferencia de datos entre 2 máquinas Ubuntu mediante un cable USB?

20

Tengo dos máquinas con Ubuntu 14.04, una al lado de la otra. Pero no hay red ((W) LAN). ¿Puedo transferir datos de una máquina a otra a través de un cable USB? Y si es así, ¿cómo?

Creech
fuente
No, no lo creo. Necesitarías algo llamado "cable puenteado" para eso.
mikewhatever
En general, no. USB fue diseñado para ser de PC a periférico. Hemos desdibujado la definición de periférico con tabletas y teléfonos, pero no se puede conectar un cable USB A a A de una PC a la PC. No creo haber visto un cable A-A-A aparte del cable Easy Transfer de Windows.
Christopher Hostage
2
Lo que se ha dicho es cierto para las PC ordinarias, aunque estrictamente hablando "Ubuntu 14.04" no identifica el hardware, y bien puede haber compilaciones que se ejecutan en varias plataformas o tabletas cuasi-embebidas que tienen dispositivos USB o interfaces OTG, así como Interfaces de host USB comunes en PC.
Chris Stratton
1
Esto ha sido respondido en superuser.com/a/1165890/41259 .
chx

Respuestas:

16

Cuando dice: cable USB, se refiere a un cable de transferencia fácil de Windows, ¿verdad?

ingrese la descripción de la imagen aquí

En ese caso, la forma más fácil de hacer esto es conectar las dos máquinas directamente con un cable Ethernet. Las NIC modernas son lo suficientemente inteligentes como para que ni siquiera necesite un cable cruzado; simplemente se cruzan automáticamente cuando detectan que conectó dos computadoras.

You'reAGitForNotUsingGit
fuente
2
Por lo que escuché, los cables de transferencia USB como se muestra en la imagen generalmente se tratan como un tipo de red en Linux de todos modos. Algunas computadoras portátiles ultraligeras no tienen conectores ethernet con cable, por lo que esto podría ser ventajoso: la opción podría ser dos adaptadores USB-Ethernet y un cable de conexión RJ45 (aunque también podrían usarse para otros fines de red).
Chris Stratton
@ChrisStratton Eso es correcto. Estos cables son esencialmente dos NIC.
David Schwartz
1
@DavidSchwartz en términos de cómo Linux los trata tradicionalmente, sí. Pero Windows los ve de manera completamente diferente (según los informes, la transferencia multiplataforma no funciona) y arquitectónicamente son probablemente un par de FIFO y algo de lógica entre dos motores de dispositivos USB, o incluso simplemente coordinan la lógica para crear quince virtuales desde una memoria de búfer común.
Chris Stratton
2
@ChrisStratton Se basan básicamente en alguna variante del Prolific 2501 (2301, 25A1, lo que sea). Físicamente, hay dos FIFO entre dos controladores de back-end con un microcontrolador para la administración. Pero eso es esencialmente lo mismo que obtendría si conectara dos NIC entre sí. La forma en que el conductor elige presentarlo es, por supuesto, la elección del conductor. El mismo software de Windows que funciona a través de estos cables generalmente también funciona a través de NIC consecutivas a menos que el fabricante elija bloquearlo.
David Schwartz
Esta, creo, es la respuesta USB 2.0 con la respuesta USB 3.0 en superuser.com/a/1165890/41259 .
chx
3

Si tuviera que hacer esto absolutamente como prueba de concepto, podría simular el antiguo arte de las transferencias "laplink" emulando un puerto serie en cada máquina.

Usb a serial en uno, y usb a serial (módem nulo) en el otro, clasificando los problemas de género en el medio.

No sería rápido

mckenzm
fuente
8
"No sería rápido".
Charlie
0

Si sus máquinas tienen un conector tipo B o On-the-Go , puede usar el controlador de gadget USB . Para cargar el conductor

# modprobe g_ether

Puede configurar las direcciones MAC y las ID de proveedor y producto:

# modinfo g_ether
filename:       /lib/modules/version/kernel/drivers/usb/gadget/legacy/g_ether.ko
license:        GPL
author:         David Brownell, Benedikt Spanger
description:    RNDIS/Ethernet Gadget
srcversion:     5E4C828D24F6E477C9CB5EE
depends:        libcomposite,u_ether,usb_f_rndis
intree:         Y
vermagic:       version SMP mod_unload modversions 
parm:           idVendor:USB Vendor ID (ushort)
parm:           idProduct:USB Product ID (ushort)
parm:           bcdDevice:USB Device version (BCD) (ushort)
parm:           iSerialNumber:SerialNumber string (charp)
parm:           iManufacturer:USB Manufacturer string (charp)
parm:           iProduct:USB Product string (charp)
parm:           qmult:queue length multiplier at high/super speed (uint)
parm:           dev_addr:Device Ethernet Address (charp)
parm:           host_addr:Host Ethernet Address (charp)
parm:           use_eem:use CDC EEM mode (bool)

Puede configurar los parámetros del módulo al cargar el controlador pasándolos después del nombre del módulo:

# modprobe g_ether host_addr=00:dc:c8:f7:75:05 dev_addr=00:dd:dc:eb:6d:f1

Si ninguna de sus máquinas admite la operación como dispositivo USB, este enfoque no funcionará.

Advertencia: NO intente conectar dos conectores USB tipo A. En el mejor de los casos, puede dañar sus placas base. En el peor de los casos, puede comenzar un incendio.

David Cullen
fuente