Возможна ли передача данных между двумя машинами Ubuntu через USB-кабель?


20

У меня есть две машины с Ubuntu 14.04, прямо рядом друг с другом. Но нет сети ((W) LAN). Могу ли я передавать данные с одного компьютера на другой через USB-кабель? И если да, то как?


Нет, я так не думаю. Для этого вам понадобится нечто, называемое «мостовой кабель».
Во всяком случае,

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

2
То, что было сказано, верно для обычных ПК, хотя, строго говоря, «Ubuntu 14.04» не идентифицирует аппаратное обеспечение, и вполне могут быть сборки, которые работают на различных квази-встроенных платформах или планшетах, которые имеют USB-устройства или интерфейсы OTG, а также Интерфейсы хоста USB распространены на ПК.
Крис Страттон

1
На этот вопрос ответили по адресу superuser.com/a/1165890/41259 .
chx

Ответы:


16

Когда вы говорите, USB-кабель вы имеете в виду Windows Easy Transfer Cable, верно?

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

В этом случае самый простой способ сделать это - просто подключить две машины напрямую вместе с помощью кабеля Ethernet. Современные сетевые карты достаточно умны, чтобы вам даже не нужен перекрестный кабель; они просто автоматически пересекаются, когда обнаруживают, что вы подключили два компьютера.


2
Из того, что я слышал, USB-кабели передачи, как показано на рисунке, в любом случае обычно рассматриваются как тип сети в Linux. Некоторые сверхлегкие ноутбуки не имеют проводных разъемов Ethernet, поэтому это может быть выгодно - в качестве опции могут быть два адаптера USB-Ethernet и патч-корд RJ45 (но, тем не менее, их можно использовать и для других сетевых целей).
Крис Страттон

@ChrisStratton Это правильно. Эти кабели по сути являются двумя сетевыми картами.
Дэвид Шварц

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

2
@ChrisStratton Они в значительной степени основаны на каком-то варианте Prolific 2501 (2301, 25A1, что угодно). Физически, есть два FIFO между двумя бэкэнд-контроллерами с микроконтроллером для управления. Но это по сути то же самое, что вы получите, если подключите две сетевые карты друг к другу. То, как водитель выбирает это, конечно же, выбор водителя. То же самое программное обеспечение Windows, которое работает по этим кабелям, также работает по параллельным сетевым платам, если только производитель не решил заблокировать его.
Дэвид Шварц

Это, я полагаю, ответ USB 2.0 с ответом USB 3.0 на сайте superuser.com/a/1165890/41259 .
chx

3

Если вам абсолютно необходимо сделать это для подтверждения концепции, вы можете смоделировать древнее искусство переноса через «laplink», эмулируя последовательный порт на каждой машине.

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 типа A. В лучшем случае вы можете повредить свои материнские платы. В худшем случае вы можете начать пожар.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.