web-dev-qa-db-fra.com

Le transfert de données USB-to-USB entre deux OSES Linux est-il possible?

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

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

26
the_Strider

Oui, c'est possible, mais c'est non possible en coupant deux câbles USB avec des connecteurs USB-A (ce qui se passe normalement dans la clé USB sur votre carte mère) et croisez-vous en connectant les câbles de données. Si vous connectez les lignes d'alimentation USB sur un si câble auto-créé, vous risquez de finir par faire de la friture de votre puce de manipulation USB intégrée. N'essayez pas ca a la maison!

Sur la plupart des cartes informatiques, les puces manipulant USB sont uniquement hôtes. Non seulement cela, mais cela gère également beaucoup de communication de bas niveau pour accélérer les choses et réduire la charge sur la CPU. Ce n'est pas comme si vous pouviez programmer votre ordinateur pour gérer les broches sur le port USB pour agir comme si un hôte. Les appareils capables, sur le niveau de puce, de commutation entre agir en tant qu'hôte et connexion à un hôte sont peu nombreux, car cela nécessite une puce beaucoup plus chère¹. Ceci est par exemple Pourquoi les appareils intelligents tels que mon téléphone intelligent, GPS et mon livre électronique, bien qu'ils exécutent tous Linux ou quelque chose de similaire, ne me permettez pas d'utiliser ssh pour communiquer lorsqu'il est connecté via un câble USB normal.

Ces appareils entrent en mode muet lorsque connecté, où l'hôte (mon système de bureau) peut utiliser son stockage en tant que disque USB. Après avoir déconnecté le périphérique utilise la même interface qu'un hôte pour accéder aux données (bien qu'aucune connexion de câble n'est 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 Linuxes. Ceci indépendamment d'un micro normal micro ou de mini-câble USB les reliant à 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 sur USB-A, ce qui n'est pas courant (car cela ne fonctionnerait pas avec les jetons normales qui entraînent de toute façon les connexions).

Toute solution faisant USB sur USB avec deux connecteurs USB-A que j'ai vus, repose sur un câble qui a des composants électroniques entre les deux. (Tout comme une série USB → Serial branchée dans un câble série → USB, mais tout en une seule pièce). Celles-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 InetD et une configuration appropriée pour se connecter également sur l'autre ordinateur.

¹ Le seul périphérique que j'ai qui est un logiciel modifiable de cette manière est une carte Arduino avec exactement une puce spéciale. Juste cette puce a fait la carte deux fois aussi coûteuse qu'un tableau d'arduino normal.

24
Anthon

Oui, USB 3.0 rend possible le transfert de données duplex complet, avec le câblage 3.0. Les spécifications sont dans la section 5.5.2 des spécifications USB. Le lien vers ces spécifications est donné plus tôt 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 un transfert de données, mâle A à mâle un câble. Les versions plus récentes de Linux supportent le transfert.

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

6
Wayne Wright

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)

3
Skaperen

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

C'est ce que fait beaucoup de téléphones et de caméras. Si vous les connectez à une imprimante, ils deviennent maîtres; Si connecté à un PC, ils deviennent esclaves.

1
Lesto

La façon dont je le ferais est d'utiliser 2 câbles USB-série et une connexion nulle entre. Ensuite, vous pouvez utiliser Xmodem, Zmodem, Kermit, etc. pour transférer des fichiers, ou utilisez PPP ou Slip pour un réseau entre deux machines. Vieux façonné mais travaillera.

Thad

0
Thad