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

26

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

Existem módulos de kernel disponíveis, dada a minha experiência com a programação de kernel é muito básica?

the_Strider
fonte
6
"Para isso, não quero usar hardware ou switch externo." Não é possível fazer isso em nenhum período do sistema, se você quiser usar um cabo USB comum para a conexão. USB não é um relacionamento simétrico. De fato, você pode danificar fisicamente qualquer uma das máquinas conectando-as dessa maneira, pois há tensão envolvida.
precisa saber é o seguinte
2
No entanto, você pode usar um cabo host-a-host especial; nesse caso, sim, existem drivers de kernel; portanto, se você for comprar um, verifique se há drivers para esse cabo específico.
Goldilocks
4
Definitivamente, isso não funcionará e é o tipo de cabo que pode danificar seu computador se você o conectar diretamente a outro computador.
precisa saber é o seguinte
2
@ Thorongil Não, não é isso que eu quero dizer. Parece que não há nenhum site da Amazon que eu possa encontrar - são coisas incomuns. Aqui está um . Não confunda isso com um cabo OTG ("em movimento"), que são muito mais comuns. Basicamente, isso não vale a pena perseguir - observe que é um cabo 2.0, o que significa que você teria transferências mais rápidas usando um cabo Ethernet, se ambos tiverem Ethernet Gigabit (e você poderia usar software normal).
precisa saber é o seguinte
2
Eu só faço redes ... meus computadores então eu sei que já tem ... uma LAN-over-USB para LAN-over-USB seria o que eu iria procurar
Skaperen

Respostas:

24

Sim isso é possível, mas é não possível, cortando dois cabos USB com conectores USB-A (que é normalmente indo para o USB na placa-mãe) e cruzam conectar os cabos de dados. Se você conectar as linhas de energia USB em um cabo fabricado por você, é provável que acabe fritando seu chip de manipulação USB integrado . Não tente isto em casa!

Na maioria das placas de computador, os chips que manipulam USB são apenas host. Não apenas isso, mas também lida com grande parte da comunicação de baixo nível para acelerar as coisas e reduzir a carga na CPU. Não é como se você pudesse programar seu computador para manipular os pinos na porta USB e agir como se não fosse um host. Os dispositivos capazes, no nível do chip, de alternar entre atuar como host e conectar-se a um host são poucos, pois isso requer um chip muito mais caro¹. É por exemplo, por que dispositivos inteligentes como meu smartphone, GPS e e-book, embora todos executem Linux ou algo semelhante, não me permitem usar ssha comunicação quando conectado por um cabo USB normal.

Esses dispositivos entram no modo burro quando conectados, onde o host (meu sistema de desktop) pode usar seu armazenamento como um disco USB. Depois de desconectar, o dispositivo usa a mesma interface que o host para acessar os dados (embora não seja necessária uma conexão a cabo, isso ocorre internamente). Com esse tipo de dispositivo, mesmo que o Linux execute os dois, não há comunicação entre os sistemas, ou seja, os linuxes . Isso independentemente de um cabo micro ou mini USB normal, conectando-os à minha área de trabalho.

Entre dois PCs desktop, o acima é normalmente impossível, pois você exigiria um cabo USB-A para USB-A, o que não é comum (pois não funcionaria com os chips normais que controlam as conexões de qualquer maneira).

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 cabo Serial → USB, mas tudo em uma só peça). Isso normalmente exige que os drivers façam a transferência, embora você possa usar o UUCP ou algo mais sobre esse cabo, como faria em uma porta serial "normal". Isso provavelmente requer uma configuração inetd e adequada para fazer login no outro computador também.

¹ O único dispositivo que tenho que pode ser alterado de software dessa maneira é uma placa Arduino com exatamente um chip tão especial. Apenas esse chip tornava a placa duas vezes mais cara que uma placa Arduino normal.

Anthon
fonte
"não permite que eu use sshpara se comunicar quando conectado através de um cabo USB normal" I pode ser mal-entendido, mas eu puder ssh no meu jailbroken iPhone
Cole Johnson
@ ColeJohnson Não estou familiarizado com o iphone. Isso permite que você veja a memória interna como uma unidade USB em qualquer computador host com USB? Se possível, ele deve executar uma emulação completa do lado não host. Se não puder, provavelmente precisará de um programa dedicado para carregar dados no telefone.
Anthon
Se você instalar opensshno dispositivo, poderá entrar ssh(por Wi-Fi) e se instalar afc2(Apple File Conduit) no dispositivo, poderá navegar no sistema de arquivos por USB (sem ele, você estará "preso "para /var/mobile)
Cole Johnson
1
Está tudo bem, exceto um pouco sobre os telefones. O fato de muitos dispositivos restringirem o que pode ser feito não nega o fato de que os chips USB usados ​​em todos, exceto em alguns dispositivos, podem ser executados no modo cliente, sendo que alguns também podem ser executados no modo host.
Caleb
6

Sim, o USB 3.0 possibilita a transferência de dados full duplex, com cabeamento 3.0. As especificações estão na seção 5.5.2 das especificações USB. O link para essas especificações é fornecido anteriormente em outra resposta. http://www.gaw.ru/pdf/interface/usb/USB%203%200_english.pdf

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. certifique-se de comprar cabos DATA TRANSFER, 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.

Wayne Wright
fonte
alguma configuração necessária para este cabo funcionar? será montagem ou simulação de rede?
22417 mpapis
interessante, eu tenho um cabo USB 3.0 simples (apenas extremidades macho e um cabo simples entre eles) e gostaria de saber se não fritarei minha porta de notebook USB 2.0 conectando-a à minha porta USB 3.0 de desktop? Eu me conectei por alguns segundos e nada aconteceu no dmesg, então desconectei prontamente, como normalmente faço com qualquer coisa que não funcione imediatamente.
Aquarius Power
2
A seção 5.5.2 "Conjunto de cabos USB 3.0 padrão A a USB 3.0 padrão A" das Especificações define apenas o cabo e diz que "o conjunto de cabos é definido para depuração do sistema operacional e outros aplicativos de conexão host a host". Você tem certeza de que o cabo usb3 a-a permite não apenas a depuração ( kernel.org/doc/html/v4.16/driver-api/usb/usb3-debug-port.html - precisa do recurso de depuração xHCI DbC, que é opcional para controladores host xHCI usb3), mas também transferência de arquivos? Para transferência de arquivos existem cabos ativos (com controlador no meio), alguns listados em: ghisler.com/cables
osgx
Eu nunca vi uma configuração de trabalho com isso. Gostaria de compartilhar algum detalhe?
dirkt 24/10
3

você pode usar um dispositivo de ponte USB disponível em um formato de cabo como este ... http://www.usbgear.com/link/ (aviso de reprodução automática de vídeo)

Skaperen
fonte
3
que não se conectar portas USB diretamente
Skaperen
isso pode ser específico para o Windows
Skaperen
3
Eu ficaria muito cauteloso com o bit "nenhum driver necessário". Na verdade, eles precisam de motoristas. linux-usb.org/usbnet/#t-host
goldilocks
@goldilocks sim que o conselho provavelmente tem algum tipo de código janelas ... nenhum driver precisa ser instalado a partir de um cd pelo usuário
Skaperen
1

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

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

Lesto
fonte
1
O USB OTG apenas alterna entre o host USB e o modo de dispositivo USB. Embora seja comum para telefones, eu não conheço nenhum PC com esse recurso. Esses PCs realmente existem?
Lekensteyn
@Lekensteyn: Não é incomum para tablets, e alguns deles são realmente PCs completos. Provavelmente, existe uma alta correlação entre as portas USB somente para host e o PC completo.
Ben Voigt
O @lekensteyn editou a resposta como apenas um dos dois dispositivos, não é importante se remetente ou destinatário. Ainda falta otg no lado do PC, eu acho. Isso é uma vergonha.
Lesto 12/04/2015
Eu acredito que isso também é chamado de dados de função dupla . Algumas placas-mãe mais recentes têm suporte para essa função - veja, por exemplo, esta página . Está documentado na folha de dados do chipset, mas necessariamente ativado em todas as placas-mãe.
Luciano
0

A maneira que eu faria isso é usar 2 cabos serial USB e uma conexão nula entre eles. Então você pode usar xmodem, zmodem, kermit etc para transferir arquivos, ou usar ppp ou slip para uma rede entre duas máquinas. Antiquado, mas vai funcionar.

Thad

Thad
fonte
1
Com "cabos serial USB", você quer dizer cabos que convertem de USB para algum plugue serial e padrão como RS232 sobre DE-9? Então são basicamente dois conversores e um cabo para comunicação serial? Além disso, seria bom ter um pouco mais de informações sobre como usar esses protocolos ou onde encontrar uma boa ajuda neles.
Php 28/07
phk está correto, você deve explicar o que é uma conexão nula. Uma resposta deve ser independente. Além disso, por favor use "você" em vez de "u", mais uma vez uma resposta deve ser um auto-contido exemplo, não um post no fórum
grochmal
Isso reduziria sua velocidade de transferência USB 3 (5-10Gbps) e reduziria para cerca de 0,001Gbps, cerca de 1000 vezes mais lenta que a Ethernet gigabit padrão. Dificilmente vale o esforço! Especialmente se você gosta do OP que deseja compartilhar discos pela conexão.
Malvineous 16/03/19