Le transfert de données USB-à-USB entre deux OS Linux est-il possible?

26

Je veux créer un système de transfert de données USB vers USB sous Linux (de préférence Ubuntu). Pour cela, je ne veux utiliser aucun matériel ou commutateur externe ( sauf ce câble ). Ce sera comme monter une clé USB sur un système, mais dans ce scénario, l'un des systèmes Linux va être monté sur l'autre. Comment puis-je créer cela?

Y a-t-il des modules du noyau disponibles, étant donné que mon expérience avec la programmation du noyau est très basique?

the_Strider
la source
6
"Pour cela, je ne veux utiliser ni matériel ni commutateur externe." Vous ne pouvez le faire sur aucune période du système, si vous voulez utiliser un simple câble USB pour la connexion. L'USB n'est pas une relation symétrique. Vous pouvez en fait endommager physiquement l'une ou l'autre des machines en les connectant de cette façon, car il y a de la tension.
goldilocks
2
Vous pouvez cependant utiliser un câble d'hôte à hôte spécial, auquel cas, oui, il y a des pilotes de noyau, donc si vous en achetez un, assurez-vous de vérifier s'il existe des pilotes pour ce câble particulier.
goldilocks
4
Cela ne fonctionnera certainement pas et c'est le type de câble qui peut faire frire votre ordinateur si vous le connectez directement à un autre ordinateur.
zhongfu
2
@Thorongil Non, ce n'est pas ce que je veux dire. On dirait qu'il n'y en a pas sur ce site Amazon que j'ai pu trouver - ce sont des choses inhabituelles. En voici un . Ne confondez pas cela avec un câble OTG ("on-the-go"), qui est beaucoup plus courant. Fondamentalement, cela ne vaut pas la peine d'être poursuivi - notez qu'il s'agit d'un câble 2.0, ce qui signifie que vous auriez des transferts plus rapides en utilisant un câble Ethernet s'ils ont tous les deux un Gigabit Ethernet (et vous pouvez utiliser un logiciel normal).
goldilocks
2
je fais juste du réseautage ... mes ordinateurs donc je sais que je l'ai déjà ... un LAN-over-USB vers LAN-over-USB serait ce que je chercherais
Skaperen

Réponses:

24

Oui, cela est possible, mais ce n'est pas possible en coupant deux câbles USB avec des connecteurs USB-A (ce qui se passe normalement dans l'USB de votre carte mère) et en connectant les câbles de données. Si vous connectez les lignes d'alimentation USB sur un tel câble fabriqué par vous-même, vous risquez de faire frire votre puce de gestion USB intégrée . N'essayez pas ca a la maison!

Sur la plupart des cartes informatiques, les puces gérant l'USB sont uniquement des hôtes. Non seulement cela, mais il gère également une grande partie de la communication de bas niveau pour accélérer les choses et réduire la charge sur le processeur. Ce n'est pas comme si vous pouviez programmer votre ordinateur pour gérer les broches du port USB afin qu'il agisse comme s'il n'était pas un hôte. Les dispositifs capables, au niveau de la puce, de basculer entre agir en tant qu'hôte et se connecter à un hôte sont peu nombreux, car cela nécessite une puce beaucoup plus chère¹. C'est par exemple pourquoi les appareils intelligents comme mon smartphone, GPS et ebook, bien qu'ils fonctionnent tous sous Linux ou quelque chose de similaire, ne me permettent pas sshde communiquer lorsqu'ils sont connectés via un câble USB normal.

Ces appareils passent en mode stupide lorsqu'ils sont connectés, où l'hôte (mon système de bureau) peut utiliser son stockage comme disque USB. Après la déconnexion, l'appareil utilise la même interface qu'un hôte pour accéder aux données (bien qu'aucune connexion par câble ne soit requise, cela se produit en interne). Avec ce type d'appareils, même si Linux fonctionne sur les deux, il n'y a pas de communication entre les systèmes, c'est-à-dire les linux . Cela indépendamment d'un câble micro ou mini USB normal les connectant à mon bureau.

Entre deux ordinateurs de bureau, ce qui précède est normalement impossible à faire car vous auriez besoin d'un câble USB-A vers USB-A, ce qui n'est pas courant (car cela ne fonctionnerait pas avec les puces normales qui pilotent les connexions de toute façon).

Toute solution faisant USB vers USB avec deux connecteurs USB-A que j'ai vu, est basée sur un câble qui a de l'électronique entre les deux. (un peu comme un câble USB → série branché sur un câble série → USB, mais tout en un). Ceux-ci nécessitent normalement des pilotes pour effectuer le transfert, bien que vous puissiez utiliser UUCP ou autre chose sur un tel câble, comme vous le feriez sur un port série "normal". Cela nécessite probablement une configuration inetd et appropriée pour vous connecter également à l'autre ordinateur.

¹ Le seul appareil que je possède et dont le logiciel peut être modifié de cette manière est une carte Arduino avec exactement une telle puce spéciale. Juste cette puce a rendu la carte deux fois plus chère qu'une carte Arduino normale.

Anthon
la source
"ne me permettez pas d'utiliser sshpour communiquer lorsque vous êtes connecté via un câble USB normal" Je peux vous mal comprendre, mais je peux ssh dans mon iPhone jailbreaké
Cole Johnson
@ColeJohnson Je ne connais pas l'iphone. Cela vous permet-il de voir la mémoire interne comme un lecteur USB sur n'importe quel ordinateur hôte avec USB? S'il le peut, il doit exécuter une émulation complète du côté non hôte. Si ce n'est pas le cas, il nécessite probablement un programme dédié pour charger les données sur le téléphone.
Anthon
Si vous installez opensshsur l'appareil, vous pouvez sshen (via Wi-Fi), et si vous installez afc2(Apple File Conduit) sur l'appareil, vous devriez être en mesure de parcourir le système de fichiers via USB (sans lui, vous êtes "emprisonné" "à /var/mobile)
Cole Johnson
1
C'est très bien, sauf le peu sur les téléphones. Le fait que de nombreux appareils restreignent ce qui peut être fait ne nie pas le fait que les puces USB utilisées dans tous sauf une poignée d'appareils peuvent fonctionner en mode client, certains pouvant également fonctionner en mode hôte.
Caleb
6

Oui, l'USB 3.0 permet le transfert de données en duplex intégral, avec un câblage 3.0. Les spécifications se trouvent dans la section 5.5.2 des spécifications USB. Le lien vers ces spécifications est donné plus haut dans une autre réponse. http://www.gaw.ru/pdf/interface/usb/USB%203%200_english.pdf

Les câbles deviennent plus faciles à trouver - ils peuvent être achetés sur Amazon, par exemple, pour moins de 8,00 $. assurez-vous d'acheter des TRANSFERT DE DONNÉES, câbles mâle A à mâle A. Les versions plus récentes de Linux prennent en charge le transfert.

J'espère que cela aide quelqu'un - j'ai moi-même cherché la réponse pendant un bon moment.

Wayne Wright
la source
toute configuration nécessaire pour que ce câble fonctionne? ce sera le montage ou la simulation de réseau?
mpapis
intéressant, j'ai un simple câble usb 3.0 (juste des extrémités mâles et un simple câble entre), et je me demande si je ne vais pas frire mon port portable usb 2.0 en le connectant à mon port usb 3.0 de bureau? Je me suis connecté pendant quelques secondes et rien ne s'est produit sur dmesg, donc je me suis déconnecté rapidement comme je le fais habituellement avec tout ce qui ne fonctionne pas rapidement.
Aquarius Power
2
La section 5.5.2 «Ensemble de câbles USB 3.0 Standard-A vers USB 3.0 Standard-A» des Spécifications définit uniquement le câble et indique que «l'ensemble de câbles est défini pour le débogage du système d'exploitation et d'autres applications de connexion d'hôte à hôte». Êtes-vous sûr que le câble USB-A-to-a permet non seulement le débogage ( kernel.org/doc/html/v4.16/driver-api/usb/usb3-debug-port.html - nécessite la capacité de débogage xHCI DbC, qui est en option pour les contrôleurs hôtes xHCI usb3), mais aussi le transfert de fichiers? Pour le transfert de fichiers, il y a des câbles actifs (avec contrôleur au milieu), certains répertoriés sur: ghisler.com/cables
osgx
Je n'ai jamais vu une configuration de travail avec cela. Voulez-vous partager des détails?
dirkt
3

vous pouvez utiliser un périphérique de pont USB qui est disponible dans un facteur de forme de câble comme celui-ci ... http://www.usbgear.com/link/ (avertissement vidéo de lecture automatique)

Skaperen
la source
3
ne connectez pas directement les ports USB
Skaperen
cela peut être spécifique à Windows
Skaperen
3
Je me méfierais beaucoup du bit "aucun pilote nécessaire". AFAIK ils ont en fait besoin de chauffeurs. linux-usb.org/usbnet/#t-host
goldilocks
@goldilocks ouais cette carte a probablement une sorte de code Windows ... aucun pilote n'a besoin d'être installé à partir d'un cd par l'utilisateur
Skaperen
1

Il est techniquement possible si l'un des appareils prend en charge USB OTG , dans lequel un port peut agir en tant que maître ou esclave. Vous pouvez configurer le périphérique OTG comme esclave et le laisser agir comme un disque dur USB (vous n'avez donc même pas besoin d'un pilote spécial sur le maître).

C'est ce que font beaucoup de téléphones et de certains appareils photo. Si vous les connectez à une imprimante, ils deviennent maîtres; s'ils sont connectés à un PC, ils deviennent esclaves.

Lesto
la source
1
USB OTG bascule simplement entre le mode hôte USB et le mode périphérique USB. Bien que commun pour les téléphones, je ne connais aucun PC avec cette fonctionnalité. Ces PC existent-ils réellement?
Lekensteyn
@Lekensteyn: Ce n'est pas rare pour les tablettes, et certaines tablettes sont vraiment des PC complets. Cependant, il existe probablement une forte corrélation entre les ports USB réservés à l'hôte et le PC complet.
Ben Voigt
@lekensteyn a édité la réponse comme un seul des deux appareils, peu importe l'expéditeur ou le destinataire. Je manque toujours d'otg du côté PC, je pense. C'est une honte.
Lesto
Je crois que cela s'appelle également les données à double rôle . Certaines cartes mères plus récentes prennent en charge cette fonction - voir par exemple cette page . Il est documenté dans la fiche technique du chipset, mais nécessairement activé sur toutes les cartes mères.
Luciano
0

La façon dont je le ferais est d'utiliser 2 câbles série USB et une connexion nulle entre. Ensuite, vous pouvez utiliser xmodem, zmodem, kermit, etc. pour transférer des fichiers, ou utiliser ppp ou slip pour un réseau entre deux machines. À l'ancienne mais fonctionnera.

Thad

Thad
la source
1
Avec des "câbles USB-série", vous voulez dire des câbles qui convertissent de l'USB en une prise série et standard comme RS232 sur DE-9? Il s'agit donc essentiellement de deux convertisseurs et d'un câble pour la communication série? En outre, cela aurait été bien d'avoir un peu plus d'informations sur la façon d'utiliser ces protocoles ou où trouver une bonne aide à leur sujet.
phk
phk est correct, vous expliquerez ce qu'est une connexion nulle. Une réponse doit être autonome. Aussi, veuillez utiliser "vous" au lieu de "u", encore une fois, une réponse devrait être un exemple autonome et non un message sur le forum
grochmal
Cela prendrait votre vitesse de transfert USB 3 (5 à 10 Gbit / s) et la réduirait à environ 0,001 Gbit / s, environ 1000 fois plus lent que l'Ethernet gigabit standard. Vaut vraiment la peine! Surtout si, comme l'OP, vous cherchez à partager des disques via la connexion.
Malvineous