È possibile il trasferimento di dati da USB a USB tra due sistemi operativi Linux?


26

Voglio creare un sistema di trasferimento dati da USB a USB in Linux (preferibilmente Ubuntu). Per questo voglio usare nessun hardware esterno o switch ( tranne questo cavo ). Sarà come montare un'unità USB su un sistema, ma in questo scenario uno dei sistemi Linux verrà montato sull'altro. Come posso creare questo?

Ci sono moduli del kernel disponibili, dato che la mia esperienza con la programmazione del kernel è molto semplice?


6
"Per questo non voglio usare hardware o switch esterni." Non è possibile farlo in qualsiasi periodo del sistema, se si intende utilizzare un cavo USB semplice per la connessione. USB non è una relazione simmetrica. Puoi infatti danneggiare fisicamente entrambe le macchine collegandole in questo modo, poiché è presente una tensione.
Riccioli d'oro,

2
Tuttavia, è possibile utilizzare uno speciale cavo host-to-host, nel qual caso sì, ci sono driver del kernel, quindi se ne comprerai uno, assicurati di controllare se ci sono driver per quel particolare cavo.
Riccioli d'oro,

4
Questo sicuramente non funzionerà, ed è il tipo di cavo che può friggere il tuo computer se lo colleghi direttamente a un altro computer.
Zhongfu,

2
@Thorongil No, non è quello che intendo. Sembra che non ci sia nessuno su quel sito di Amazon che ho trovato - sono cose inusuali. Eccone uno . Non confonderlo con un cavo OTG ("on-the-go"), che è molto più comune. Fondamentalmente non vale la pena perseguire - nota che è un cavo 2.0 che significa che avresti trasferimenti più veloci usando un cavo Ethernet se entrambi hanno Gigabit Ethernet (e potresti usare un normale software).
Riccioli d'oro,

2
faccio solo il networking ... i miei computer, quindi so di averlo già fatto ... un LAN-over-USB a LAN-over-USB farebbe quello che vorrei cercare
Skaperen

Risposte:


24

Sì questo è possibile, ma non è , non può tagliando due cavi USB con connettori USB-A (quello che normalmente andando nella USB della scheda madre) e attraversano il collegamento dei cavi dati. Se si collegano le linee di alimentazione USB su un cavo di questo tipo, è probabile che finisca per friggere il chip di gestione USB di bordo . Non provarlo a casa!

Sulla maggior parte delle schede madri i chip che gestiscono USB sono solo host. Non solo, ma gestisce anche molte comunicazioni di basso livello per velocizzare le cose e ridurre il carico sulla CPU. Non è come se si potesse programmare il computer in modo che gestisca i pin sulla porta USB per agire come se non fosse un host. I dispositivi in ​​grado, a livello di chip, di passare dall'azione come host alla connessione a un host sono pochi, poiché ciò richiede un chip molto più costoso¹. Questo è ad esempio il motivo per cui dispositivi intelligenti come il mio smartphone, GPS ed ebook, sebbene tutti eseguano Linux o qualcosa di simile, non mi consentono di utilizzare sshper comunicare quando sono collegati tramite un normale cavo USB.

Quei dispositivi entrano in una modalità stupida quando sono connessi, dove l'host (il mio sistema desktop) può usare la sua memoria come disco USB. Dopo aver disconnesso il dispositivo utilizza la stessa interfaccia di un host per accedere ai dati (sebbene non sia necessaria alcuna connessione via cavo, ciò avviene internamente). Con quel tipo di dispositivi anche se Linux funziona su entrambi, non c'è comunicazione tra i sistemi, cioè i linux . Questo indipendente da un normale cavo micro o mini USB che li collega al mio desktop.

Tra due PC desktop, quanto sopra è normalmente impossibile da fare in quanto si richiederebbe un cavo da USB-A a USB-A, il che non è comune (poiché non funzionerebbe con i normali chip che guidano comunque le connessioni).

Qualsiasi soluzione che faccia da USB a USB con due connettori USB-A che ho visto, si basa su un cavo che ha un po 'di elettronica in mezzo. (molto simile a un USB → seriale collegato a un cavo seriale → USB, ma poi tutto in un unico pezzo). Questi normalmente richiedono ai driver di eseguire il trasferimento, anche se potresti essere in grado di utilizzare UUCP o qualcos'altro su un cavo di questo tipo, come faresti con una porta seriale "normale". Ciò probabilmente richiede una configurazione inetd e corretta per accedere anche all'altro computer.

¹ L'unico dispositivo che ho in questo modo che il software è modificabile in questo modo è una scheda Arduino con un chip così speciale. Proprio questo chip rendeva la scheda due volte più cara di una normale scheda Arduino.


"non permettermi di usare sshper comunicare quando connesso tramite un normale cavo USB" Potrei fraintenderti, ma posso ssh entrare nel mio iPhone jailbreak
Cole Johnson

@ColeJohnson Non ho familiarità con iPhone. Ciò ti consente di vedere la memoria interna come unità USB su qualsiasi computer host con USB? In tal caso, dovrebbe eseguire un'emulazione completa del lato non host. In caso contrario, probabilmente richiede un programma dedicato per caricare i dati sul telefono.
Anthon,

Se si installa opensshsul dispositivo, è possibile sshin (tramite Wi-Fi) e se si installa afc2(Apple File Conduit) sul dispositivo, si dovrebbe essere in grado di sfogliare il file system tramite USB (senza di esso, si è "in galera "a /var/mobile)
Cole Johnson,

1
Va tutto bene tranne che per i telefoni. Il fatto che molti dispositivi limitino ciò che può essere fatto non nega il fatto che i chip USB utilizzati in tutti, ma una manciata di dispositivi possono essere eseguiti in modalità client, alcuni anche in grado di funzionare in modalità host.
Caleb,

6

Sì, USB 3.0 rende possibile il trasferimento di dati full duplex, con cablaggio 3.0. Le specifiche sono nella sezione 5.5.2 delle specifiche USB. Il collegamento a tali specifiche è indicato in precedenza in un'altra risposta. http://www.gaw.ru/pdf/interface/usb/USB%203%200_english.pdf

I cavi stanno diventando più facili da trovare: possono essere acquistati su Amazon, ad esempio, per meno di $ 8,00. assicurati di acquistare TRASFERIMENTO DATI, cavi da maschio A a maschio A. Le versioni più recenti di Linux supportano il trasferimento.

Spero che aiuti qualcuno. Ho cercato la risposta per un bel po 'da solo.


qualche configurazione necessaria per far funzionare questo cavo? sarà il montaggio o la simulazione di rete?
mpapis,

interessante, ho un semplice cavo USB 3.0 (solo estremità maschio e un semplice cavo in mezzo), e mi chiedo se non friggerò la mia porta per notebook USB 2.0 collegandola alla mia porta USB 3.0 desktop? Mi sono connesso per alcuni secondi e non è successo nulla su dmesg, quindi mi sono disconnesso prontamente come faccio di solito con tutto ciò che non funziona prontamente.
Aquarius Power il

2
La Sezione 5.5.2 "Cavo da USB 3.0 Standard-A a USB 3.0 Standard-A" delle Specifiche definisce solo il cavo e dice "Il cavo è definito per il debug del sistema operativo e altre applicazioni di connessione da host a host". Sei sicuro che il cavo USB-to-a USB non consenta solo il debug ( kernel.org/doc/html/v4.16/driver-api/usb/usb3-debug-port.html - richiede la funzionalità di debug xHCI DbC, che è opzionale per controller host USB3 xHCI), ma anche trasferimento file? Per il trasferimento dei file ci sono cavi attivi (con controller al centro), alcuni elencati su: ghisler.com/cables
osgx

Non ho mai visto un setup funzionante con questo. Vuoi condividere qualche dettaglio?
Dirkt

3

è possibile utilizzare un dispositivo bridge USB disponibile in un fattore di forma del cavo come questo ... http://www.usbgear.com/link/ (avviso di riproduzione automatica del video)


3
non non collegare le porte USB direttamente
Skaperen

questo può essere specifico per Windows
Skaperen

3
Sarei molto diffidente nei confronti del bit "nessun driver necessario". AFAIK, infatti, hanno bisogno di autisti. linux-usb.org/usbnet/#t-host
goldilocks

@goldilocks sì, quella scheda probabilmente ha un qualche tipo di codice windows ... nessun driver deve essere installato da un cd dall'utente
Skaperen

1

È tecnicamente possibile se uno dei dispositivi supporta USB OTG , in cui una porta può agire come master o come slave. È possibile configurare il dispositivo OTG come slave e lasciarlo agire come un disco rigido USB (quindi non è nemmeno necessario un driver speciale sul master).

Questo è ciò che fanno molti telefoni e alcune fotocamere. Se li colleghi a una stampante diventano master; se collegati a un PC diventano schiavi.


1
USB OTG passa semplicemente dalla modalità host USB a quella dispositivo USB. Mentre comune per i telefoni, non conosco alcun PC con questa funzione. Questi PC esistono davvero?
Lekensteyn,

@Lekensteyn: non è raro per i tablet e alcuni tablet sono davvero PC completi. Tuttavia, esiste probabilmente un'elevata correlazione tra porte USB solo host e PC completo.
Ben Voigt,

@lekensteyn ha modificato la risposta come solo uno dei due dispositivi, non è importante se mittente o destinatario. Penso ancora che manchi otg dal lato PC. È un peccato.
Lesto,

Credo che questo sia anche chiamato Dual Role Data . Alcune schede madri più recenti hanno il supporto per questa funzione - vedi ad esempio questa pagina . È documentato nella scheda tecnica del chipset, ma necessariamente abilitato su tutte le schede madri.
Luciano,

0

Il modo in cui lo farei è usare 2 cavi USB-seriali e una connessione null tra. Quindi puoi usare xmodem, zmodem, kermit ecc. Per trasferire file, oppure usare ppp o slip per una rete tra due macchine. Vecchio stile ma funzionerà.

Thad


1
Con "cavi USB-seriali" intendi cavi che si convertono da USB a qualche presa seriale e standard come RS232 su DE-9? Quindi sono fondamentalmente due convertitori e un cavo per la comunicazione seriale? Inoltre, sarebbe stato carino avere qualche informazione in più su come usare questi protocolli o dove trovare un buon aiuto su di essi.
phk,

phk è corretto, devi spiegare cos'è una connessione null. Una risposta deve essere autonoma. Inoltre, per favore usa "tu" invece di "u", di nuovo una risposta dovrebbe essere un esempio autonomo, non un post sul forum
Grochmal,

Ciò richiederebbe la tua velocità di trasferimento USB 3 (5-10 Gbps) e la ridurrebbe a circa 0,001 Gbps, circa 1000 volte più lenta della normale Ethernet Gigabit. Ne vale la pena! Soprattutto se, come l'OP, stai cercando di condividere i dischi tramite la connessione.
Malvineous
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.