Чи можлива передача даних між двома машинами Ubuntu через USB-кабель?


20

У мене є дві машини з Ubuntu 14.04, прямо поруч. Але немає мережі ((W) LAN). Чи можу я передати дані з однієї машини на іншу за допомогою usb-кабелю? А якщо так, то як?


Ні, я не думаю. Для цього вам знадобиться щось, що називається "мостовий кабель".
mikew незалежно від того,

Загалом, ні. USB був розроблений як ПК-периферія. Ми розмили визначення периферійних пристроїв планшетами та телефонами, але ви не можете підключити звичайний старий USB-кабель A-to-A від ПК до ПК. Я не вірю, що я коли-небудь бачив кабель A-A-A окрім кабелю Windows Easy Transfer.
Крістофер Заручник

2
Що вже сказано, це стосується звичайних ПК, хоча строго кажучи, "Ubuntu 14.04" не визначає апаратне забезпечення, і цілком може бути побудова, яка працює на різних квазі-вбудованих платформах або планшетах, що мають USB-пристрій або інтерфейси OTG, а також Хост-інтерфейси USB, поширені на ПК.
Кріс Страттон

1
На це відповіли на superuser.com/a/1165890/41259 .
chx

Відповіді:


16

Коли ви говорите, USB-кабель, який ви посилаєтесь на кабель Windows Easy Transfer, правда?

введіть тут опис зображення

У цьому випадку найпростіший спосіб зробити це просто підключити дві машини безпосередньо разом з кабелем Ethernet. Сучасні NIC досить розумні, що вам навіть не потрібен кроссовер; вони просто автоматично перехрещуються, коли виявляють, що ви підключили два комп'ютери.


2
Як я почув, USB-кабелі для передачі даних, як показано на зображенні, як правило, трактуються як тип мережі в Linux. Деякі ультралегкі ноутбуки не мають провідних роз'ємів для Ethernet, тому це може бути вигідним - можливі два адаптери USB-Ethernet та патч-кабель RJ45 (але вони можуть використовуватися і для інших мережних цілей).
Кріс Страттон

@ChrisStratton Це правильно. Ці кабелі, по суті, є двома НІК.
Девід Шварц

1
@DavidSchwartz з точки зору того, як Linux традиційно ставиться до них, так. Але Windows бачить їх зовсім по-різному (як повідомляється, перехід на платформу не працює), і архітектурно вони, ймовірно, є парою FIFO та деякою логікою, що сидить між двома движками USB-пристроїв, або навіть просто координує логіку для створення віртуальних фіфос із загальної буферної пам'яті.
Кріс Страттон

2
@ChrisStratton Вони майже все базуються на якомусь варіанті Prolific 2501 (2301, 25A1, що б там не було). Фізично є два FIFO між двома резервними контролерами з мікроконтролером для управління. Але це по суті те саме, що ви отримали, якщо з'єднали два NIC один з одним. Те, як водій обирає його представити - це, звичайно, вибір водія. Це ж програмне забезпечення для Windows, яке працює над цими кабелями, зазвичай також працює над тиловими NIC, якщо виробник не вирішив його заблокувати.
Девід Шварц

Я вважаю, що це відповідь USB 2.0, відповідь USB 3.0 - за адресою superuser.com/a/1165890/41259 .
chx

3

Якщо вам абсолютно довелося це зробити для підтвердження концепції, ви могли б імітувати давнє мистецтво передачі "посилання" шляхом емуляції послідовного порту на кожній машини.

Usb на серійний на одному, а usb на серійний (нульовий модем) в іншому, сортуючи гендерні проблеми в середині.

Це було б не швидко.


8
"Це було б не швидко".
Чарлі


0

Якщо у ваших машинах є роз'єм типу B або On-the-Go , ви можете використовувати драйвер USB-гаджетів . Для завантаження водія

# modprobe g_ether

Ви можете налаштувати MAC-адреси та ідентифікатори постачальника та продукту:

# 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)

Ви можете встановити параметри модуля під час завантаження драйвера, передавши їх після назви модуля:

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

Якщо жодна з ваших машин не підтримує роботу як USB-пристрій, такий підхід не працюватиме.

Попередження: НЕ намагайтеся підключити два роз'єми USB Type-A. У кращому випадку ви можете пошкодити материнські плати. У гіршому випадку, ви можете розпалити пожежу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.