Le transfert de données entre 2 machines Ubuntu est-il possible via un câble USB?


20

J'ai deux machines avec Ubuntu 14.04, l'une à côté de l'autre. Mais pas de réseau ((W) LAN). Puis-je transférer des données d'une machine à l'autre via un câble USB? Et si oui, comment?


Non je ne pense pas. Vous auriez besoin de quelque chose appelé "câble ponté" pour cela.
mikewimporte

En général, non. L'USB a été conçu pour être PC-à-périphérique. Nous avons brouillé la définition de périphérique avec les tablettes et les téléphones, mais vous ne pouvez pas brancher un vieux câble USB A-A simple de PC à PC. Je ne pense pas avoir jamais vu un câble A vers A part le câble de transfert facile Windows.
Christopher Hostage

2
Ce qui a été dit est vrai pour les PC ordinaires, bien que "Ubuntu 14.04" à proprement parler n'identifie pas le matériel, et il peut bien y avoir des versions qui s'exécutent sur diverses plates-formes ou tablettes quasi-intégrées qui ont un périphérique USB ou des interfaces OTG, ainsi que le Interfaces hôtes USB courantes sur les PC.
Chris Stratton

1
Cela a été répondu sur superuser.com/a/1165890/41259 .
chx

Réponses:


16

Quand vous dites, câble USB, vous faites référence à un câble de transfert facile Windows, non?

entrez la description de l'image ici

Dans ce cas, la façon la plus simple de le faire est de simplement raccorder les deux machines directement avec un câble Ethernet. Les cartes réseau modernes sont suffisamment intelligentes pour que vous n'ayez même pas besoin d'un câble croisé; ils se croisent automatiquement lorsqu'ils détectent que vous avez connecté deux ordinateurs.


2
D'après ce que j'ai entendu, les câbles de transfert USB tels qu'illustrés sont généralement traités comme un type de réseau sous Linux de toute façon. Certains ordinateurs portables ultralégers ne disposent pas de prises Ethernet câblées, donc cela pourrait être avantageux - l'option pourrait être deux adaptateurs USB-Ethernet et un cordon de raccordement RJ45 (mais bien que ceux-ci puissent ensuite être utilisés à d'autres fins de mise en réseau).
Chris Stratton

@ChrisStratton C'est exact. Ces câbles sont essentiellement deux NIC.
David Schwartz

1
@DavidSchwartz en termes de la façon dont Linux les traite traditionnellement, oui. Mais Windows les voit complètement différemment (le transfert entre plates-formes ne fonctionnerait pas) et, sur le plan architectural, il s'agit probablement d'une paire de FIFO et d'une logique située entre deux moteurs de périphérique USB, ou même simplement d'une logique de coordination pour créer des fifos virtuels à partir d'une mémoire tampon commune.
Chris Stratton

2
@ChrisStratton Ils sont à peu près tous basés sur une variante du Prolific 2501 (2301, 25A1, peu importe). Physiquement, il y a deux FIFO entre deux contrôleurs principaux avec un microcontrôleur pour la gestion. Mais c'est essentiellement la même chose que ce que vous obtiendriez si vous connectiez deux cartes réseau entre elles. La façon dont le conducteur choisit de le présenter est, bien sûr, le choix du conducteur. Le même logiciel Windows qui fonctionne sur ces câbles fonctionne généralement également sur des cartes réseau consécutives, sauf si le fabricant a choisi de le verrouiller.
David Schwartz

Je pense que c'est la réponse USB 2.0 avec la réponse USB 3.0 sur superuser.com/a/1165890/41259 .
chx

3

Si vous deviez absolument le faire pour une preuve de concept, vous pourriez simuler l'art ancien des transferts "laplink" en émulant un port série sur chaque machine.

USB vers série sur un, et USB vers série (null modem) dans l'autre, triant les problèmes de genre au milieu.

Ce ne serait pas rapide.


8
"Ce ne serait pas rapide."
Charlie


0

Si vos machines ont soit un type B ou On-the-Go connecteur, vous pouvez utiliser le pilote USB Gadget . Pour charger le pilote

# modprobe g_ether

Vous pouvez configurer les adresses MAC et les ID de fournisseur et de produit:

# modinfo g_ether
filename:       /lib/modules/version/kernel/drivers/usb/gadget/legacy/g_ether.ko
license:        GPL
author:         David Brownell, Benedikt Spanger
description:    RNDIS/Ethernet Gadget
srcversion:     5E4C828D24F6E477C9CB5EE
depends:        libcomposite,u_ether,usb_f_rndis
intree:         Y
vermagic:       version SMP mod_unload modversions 
parm:           idVendor:USB Vendor ID (ushort)
parm:           idProduct:USB Product ID (ushort)
parm:           bcdDevice:USB Device version (BCD) (ushort)
parm:           iSerialNumber:SerialNumber string (charp)
parm:           iManufacturer:USB Manufacturer string (charp)
parm:           iProduct:USB Product string (charp)
parm:           qmult:queue length multiplier at high/super speed (uint)
parm:           dev_addr:Device Ethernet Address (charp)
parm:           host_addr:Host Ethernet Address (charp)
parm:           use_eem:use CDC EEM mode (bool)

Vous pouvez définir les paramètres du module lors du chargement du pilote en les passant après le nom du module:

# modprobe g_ether host_addr=00:dc:c8:f7:75:05 dev_addr=00:dd:dc:eb:6d:f1

Si aucune de vos machines ne prend en charge le fonctionnement en tant que périphérique USB, cette approche ne fonctionnera pas.

Avertissement: N'essayez PAS de connecter deux connecteurs USB de type A. Au mieux, vous pourriez endommager vos cartes mères. Au pire, vous pouvez déclencher un incendie.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.