É possível a transferência de dados USB-para-USB entre dois sistemas operacionais Linux?

22

Eu quero criar um sistema de transferência de dados USB-para-USB no Linux (preferencialmente Ubuntu). Para isso eu quero usar nenhum hardware externo ou switch ( exceto este cabo ). Será como montar um drive USB em um sistema, mas nesse cenário um dos sistemas Linux será montado no outro. Como posso criar isso?

Existe algum módulo do kernel disponível, considerando que minha experiência com programação do kernel é muito básica?

    
por the_Strider 12.04.2015 / 12:11

5 respostas

23

Sim, isso é possível, mas não é possível cortando dois cabos USB com conectores USB-A (o que normalmente está no USB da placa-mãe) e conectando os cabos de dados. Se você conectar as linhas de energia USB a esse cabo, provavelmente acabará fritando seu chip de manuseio USB . Não tente isso em casa!

Na maioria das placas de computador, os chips que lidam com USB são somente hospedeiros. Não só isso, mas também lida com a comunicação de baixo nível para acelerar as coisas e reduzir a carga na CPU. Não é como se você pudesse programar o seu computador para manipular os pinos na porta USB para agir como se fosse um não-host. Os dispositivos capazes, no nível do chip, de alternar entre atuar como host e conectar-se a um host são poucos, já que isso requer um chip muito mais caro. Isto é, e. Por que dispositivos inteligentes como meu smartphone, GPS e e-book, embora todos executem Linux ou algo semelhante, não permitem que eu use o ssh para se comunicar quando conectado através de um cabo USB normal.

Esses dispositivos entram em algum modo mudo quando conectados, onde o host (meu sistema de desktop) pode usar seu armazenamento como um disco USB. Após a desconexão, o dispositivo usa a mesma interface de um host para obter os dados (embora não seja necessária conexão por cabo, isso ocorre internamente). Com esse tipo de dispositivo, mesmo que o Linux rode em ambos, não há comunicação entre os sistemas, ou seja, os linuxes . Isso é independente de um cabo micro ou mini USB normal conectando-o à minha área de trabalho.

Entre dois desktops, normalmente é impossível fazer o que está acima, pois você precisaria de um cabo USB-A para USB-A, o que não é comum (já que não funcionaria com os chips normais que estão acionando as conexões) .

Qualquer solução que faça USB para USB com dois conectores USB-A que eu já vi é baseada em um cabo que possui alguns componentes eletrônicos. (muito parecido com um USB → Serial conectado a um serial → cabo USB, mas depois tudo em uma única peça). Eles normalmente exigem que os drivers façam a transferência, embora você possa usar o UUCP ou qualquer outra coisa nesse tipo de cabo, como faria com uma porta serial "normal". Isso provavelmente requer configuração inetd e adequada para login no outro computador também.

¹ O único dispositivo que tenho é que o software pode ser modificado desta forma, é uma placa Arduino com exatamente um chip especial. Apenas este chip tornou a placa duas vezes tão cara quanto uma placa Arduino normal.

    
por 12.04.2015 / 13:59
5

Sim, o USB 3.0 possibilita a transferência de dados full duplex, com o cabeamento 3.0. As especificações estão na seção 5.5.2 das especificações do USB. O link para essas especificações é dado anteriormente em outra resposta. link

Os cabos estão se tornando mais fáceis de encontrar - eles podem ser comprados na Amazon, por exemplo, por menos de US $ 8,00. não se esqueça de comprar cabos de TRANSFERÊNCIA DE DADOS, macho A para macho A. Versões mais recentes do Linux suportam a transferência.

Espero que ajude alguém - procurei a resposta por um bom tempo.

    
por 01.10.2016 / 05:53
3

você pode usar um dispositivo de ponte USB que esteja disponível em um formato de cabo como este ... link (auto aviso de vídeo de reprodução)

    
por 12.04.2015 / 12:35
0

É tecnicamente possível se um dos dispositivos suporta USB OTG , no qual uma porta pode atuar como mestre ou como escravo. Você pode configurar o dispositivo OTG como escravo e deixá-lo agir como uma unidade de disco rígido USB (para que você nem precise de um driver especial no mestre).

Isto é o que muitos telefones e algumas câmeras fazem. Se você conectá-los a uma impressora, eles se tornarão mestres; se conectado a um PC, eles se tornam escravos.

    
por 12.04.2015 / 17:28
0

A maneira que eu faço é usar 2 cabos usb-serial e uma conexão nula entre eles. Então vc pode usar xmodem, zmodem, kermit etc para transferir arquivos, ou usar ppp ou slip para uma rede entre duas máquinas. À moda antiga, mas vai funcionar.

Thad

    
por 28.07.2016 / 18:57