A transferência de dados entre duas máquinas Ubuntu é possível via cabo USB?

20

Eu tenho duas máquinas com o Ubuntu 14.04, uma ao lado da outra. Mas sem rede ((W) LAN). Posso transferir dados de uma máquina para outra via cabo USB? E se sim, como?

Creech
fonte
Não, eu não penso assim. Você precisaria de algo chamado "cabo de ponte" para isso.
Mikewhatever 17/04
Em geral, não. O USB foi projetado para ser de PC para periférico. Desfocamos a definição de periférico com tablets e telefones, mas você não pode conectar um cabo USB A-a antigo simples de PC para PC. Eu não acredito que eu já tenha visto um cabo A-a-A além do cabo de transferência fácil do Windows.
Christopher Hostage
2
O que foi dito é verdade para os PCs comuns, embora estritamente falando "Ubuntu 14.04" não identifique hardware, e pode haver compilações executadas em várias plataformas ou tablets quase incorporados que possuem dispositivo USB ou interfaces OTG, bem como o Interfaces USB host comuns em PCs.
Chris Stratton
11
Isso foi respondido em superuser.com/a/1165890/41259 .
CHX

Respostas:

16

Quando você diz, cabo USB, está se referindo a um cabo de transferência fácil do Windows, certo?

insira a descrição da imagem aqui

Nesse caso, a maneira mais fácil de fazer isso é conectar as duas máquinas diretamente junto com um cabo Ethernet. As NICs modernas são inteligentes o suficiente para que você nem precise de um cabo cruzado; eles apenas cruzam automaticamente quando detectam que você conectou dois computadores.

Android Dev
fonte
2
Pelo que ouvi, os cabos de transferência USB, conforme a foto, geralmente são tratados como um tipo de rede no Linux. Alguns laptops ultraleves não possuem conectores Ethernet com fio, portanto isso pode ser vantajoso - a opção pode ser dois adaptadores USB-Ethernet e um cabo de conexão RJ45 (mas esses também podem ser usados ​​para outros fins de rede).
Chris Stratton
@ Chrishratton Isso está correto. Esses cabos são essencialmente duas placas de rede.
21717 David Schwartz
11
@DavidSchwartz em termos de como o Linux tradicional os trata, sim. Mas o Windows os vê de maneira completamente diferente (supostamente a transferência de plataforma cruzada não funciona) e, arquitetonicamente, eles são provavelmente um par de FIFOs e alguma lógica entre dois mecanismos de dispositivos USB, ou mesmo apenas a lógica de coordenação para criar notas virtuais a partir de uma memória buffer comum.
21417 Chris Stratton
2
@ ChrisStratton Eles são praticamente todos baseados em alguma variante do Prolific 2501 (2301, 25A1, qualquer que seja). Fisicamente, existem dois FIFOs entre dois controladores de back-end com um microcontrolador para gerenciamento. Mas isso é essencialmente o mesmo que você obteria se conectasse duas placas de rede. Como o motorista decide apresentá-lo é, obviamente, a escolha do motorista. O mesmo software Windows que funciona com esses cabos normalmente também funciona com NICs consecutivas, a menos que o fabricante tenha decidido travá-lo.
David Schwartz
Acredito que esta é a resposta do USB 2.0, com a resposta do USB 3.0 em superuser.com/a/1165890/41259 .
CHX
3

Se você absolutamente precisava fazer isso como prova de conceito, poderia simular a arte antiga das transferências "laplink", emulando uma porta serial em cada máquina.

Usb para serial em um e usb para serial (modem nulo) no outro, resolvendo problemas de gênero no meio.

Não seria rápido.

mckenzm
fonte
8
"Não seria rápido."
18717 Charlie
0

Se as suas máquinas tiverem um conector Tipo B ou On-the-Go , você poderá usar o Driver USB Gadget . Para carregar o driver

# modprobe g_ether

Você pode configurar os endereços MAC e os IDs do fornecedor e do produto:

# 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)

Você pode definir os parâmetros do módulo ao carregar o driver passando-os após o nome do módulo:

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

Se nenhuma de suas máquinas suportar a operação como um dispositivo USB, essa abordagem não funcionará.

Aviso: NÃO tente conectar dois conectores USB tipo A. Na melhor das hipóteses, você pode danificar sua placa-mãe. Na pior das hipóteses, você pode começar um incêndio.

David Cullen
fonte