Возможна ли передача данных с USB на USB между двумя ОС Linux?


26

Я хочу создать систему передачи данных с USB на USB в Linux (желательно Ubuntu). Для этого я не хочу использовать внешнее оборудование или коммутатор ( кроме этого кабеля ). Это будет похоже на подключение USB-накопителя к системе, но в этом случае одна из систем Linux будет смонтирована на другой. Как я могу создать это?

Доступны ли какие-либо модули ядра, учитывая мой опыт программирования ядра?


6
«Для этого я не хочу использовать внешнее оборудование или коммутатор». Вы не можете сделать это в любой системный период, если вы хотите использовать простой USB-кабель для подключения. USB не симметричные отношения. Фактически вы можете физически повредить любую машину, подключив их таким образом, так как это связано с напряжением.
Златовласка

2
Однако вы можете использовать специальный кабель хост-хост, в этом случае, да, есть драйверы ядра, поэтому, если вы собираетесь их купить, обязательно проверьте, есть ли драйверы для этого конкретного кабеля.
Златовласка

4
Это определенно не будет работать, и это тот тип кабеля, который может зажечь ваш компьютер, если вы подключите его к другому компьютеру напрямую.
Чжунфу

2
@ Торонгил: Нет, я не об этом. Похоже, что на этом сайте Amazon нет ни одного, который я мог бы найти - это какие-то необычные вещи. Вот один . Не путайте это с OTG ("на ходу") кабелем, который встречается гораздо чаще. По сути, это просто не стоит того, чтобы учиться - обратите внимание, что это кабель 2.0, означающий, что вы будете иметь более быструю передачу, используя кабель Ethernet, если у них обоих есть гигабитный Ethernet (и вы могли бы использовать обычное программное обеспечение).
Златовласка

2
я просто работаю в сети ... мои компьютеры, так что я знаю, что у меня уже есть ... LAN-через-USB-LAN-через-USB будет то, что я искал
Skaperen

Ответы:


24

Да , это возможно, но это не возможно, сокращая два USB кабели с разъемами USB-A (что обычно собирается в USB на материнской плате) и пересекающие подключения кабелей данных. Если вы подключите линии питания USB к такому самодельному кабелю, вы, скорее всего, в конечном итоге будете жарить свой встроенный USB-чип обработки . Не пытайтесь сделать это дома!

На большинстве компьютерных плат чипы, обрабатывающие USB, являются только хост-компьютерами Кроме того, он также обрабатывает много низкоуровневой связи, чтобы ускорить процесс и снизить нагрузку на процессор. Это не так, как если бы вы могли запрограммировать ваш компьютер так, чтобы он обрабатывал контакты на USB-порту так, чтобы он действовал как не хост. Устройств, способных на уровне чипа переключаться между работой в качестве хоста и подключением к хосту, немного, поскольку для этого требуется гораздо более дорогая микросхема¹. Вот почему интеллектуальные устройства, такие как мой смартфон, GPS и электронная книга, хотя все они работают под управлением Linux или чего-то подобного, не позволяют мне использовать sshсвязь при подключении через обычный USB-кабель.

Эти устройства при подключении переходят в какой-то тупой режим, когда хост (моя настольная система) может использовать свое хранилище в качестве USB-диска. После отключения устройство использует тот же интерфейс, что и хост, для доступа к данным (хотя кабельное соединение не требуется, это происходит внутри). С такими устройствами, даже если Linux работает на обоих, между системами нет связи, то есть Linux . Это не зависит от обычного кабеля micro или mini USB, соединяющего их с моим рабочим столом.

Между двумя настольными ПК вышеупомянутое обычно невозможно сделать, так как вам потребуется кабель USB-A к USB-A, который не является распространенным (так как он не будет работать с обычными чипами, которые в любом случае управляют соединениями).

Любое решение, использующее USB-USB с двумя разъемами USB-A, которое я видел, основано на кабеле с некоторой промежуточной электроникой. (очень похоже на USB → Serial, подключенный к кабелю Serial → USB, но все вместе). Обычно для передачи данных требуются драйверы, хотя вы можете использовать UUCP или что-то еще через такой кабель, как если бы вы использовали «обычный» последовательный порт. Это, вероятно, требует inetd и правильной конфигурации для входа на другой компьютер.

¹ Единственное устройство, которое я могу изменить таким способом, - это плата Arduino с таким специальным чипом. Именно этот чип сделал плату вдвое дороже, чем обычная плата Arduino.


«Не позволяйте мне sshобщаться, когда я подключен через обычный USB-кабель». Возможно, я вас неправильно понимаю, но я могу ssh зайти в мой взломанный iPhone
Коул Джонсон,

@ColeJohnson Я не знаком с iphone. Позволяет ли это видеть внутреннюю память как USB-накопитель на любом хост-компьютере с USB? Если это возможно, он должен запустить полную эмуляцию на стороне, не являющейся хостом. Если это невозможно, возможно, для загрузки данных на телефон требуется специальная программа.
Anthon

Если вы устанавливаете opensshна устройство, вы можете войти ssh(через Wi-Fi), и если вы устанавливаете afc2(Apple File Conduit) на устройстве, вы сможете просматривать файловую систему через USB (без нее вы будете в тюрьме). «к /var/mobile)
Коул Джонсон

1
Это все хорошо, кроме немного о телефонах. Тот факт, что многие устройства ограничивают то, что можно сделать, не отменяет того факта, что чипы USB, используемые во всех устройствах, кроме нескольких, могут работать в режиме клиента, а некоторые также могут работать в режиме хоста.
Калеб

6

Да, USB 3.0 делает возможной полнодуплексную передачу данных с кабелем 3.0. Спецификации находятся в разделе 5.5.2 спецификаций USB. Ссылка на эти характеристики дана ранее в другом ответе. http://www.gaw.ru/pdf/interface/usb/USB%203%200_english.pdf

Кабели становятся все легче найти - их можно купить на Amazon, например, менее чем за 8 долларов. Обязательно купите DATA TRANSFER, между мужчинами и мужчинами. Более новые версии Linux поддерживают передачу.

Надеюсь, это кому-то поможет - я сам долго искал ответ.


какая настройка необходима для работы этого кабеля? это будет монтаж или симуляция сети?
mpapis

Интересно, у меня есть простой кабель USB 3.0 (только штекеры и простой кабель между ними), и мне интересно, если я не буду жарить мой порт ноутбука USB 2.0, подключив его к настольному порту USB 3.0? Я подключился в течение нескольких секунд, и ничего не произошло в dmesg, поэтому я быстро отключился, как обычно, с тем, что не работает быстро.
Водолей Сила

2
В разделе 5.5.2 «Кабельная сборка USB 3.0 Standard-A - USB 3.0 Standard-A» в Спецификациях определяется только кабель и говорится, что «кабельная сборка определена для отладки операционной системы и других приложений соединения хост-хост». Вы уверены, что a-to-a кабель usb3 позволяет не только отладку ( kernel.org/doc/html/v4.16/driver-api/usb/usb3-debug-port.html - требуется возможность отладки xHCI DbC, которая является опционально для хост-контроллеров xHCI usb3), но также и передача файлов? Для передачи файлов есть активные кабели (с контроллером посередине), некоторые из них перечислены по адресу: ghisler.com/cables
osgx

Я никогда не видел рабочую установку с этим. Хотите поделиться какими-либо подробностями?
dirkt

3

Вы можете использовать мостовое устройство USB, которое доступно в кабельном форм-факторе, как это ... http://www.usbgear.com/link/ (предупреждение о автоматическом воспроизведении видео)


3
ничего не подключать USB - порты непосредственно
Skaperen

это может быть специфично для Windows
Skaperen

3
Я был бы очень осторожен с битом "не нужен драйвер". AFAIK им, на самом деле, нужны водители. linux-usb.org/usbnet/#t-host
Златовласка

@goldilocks да, эта плата, вероятно, имеет какой-то код Windows ... пользователь не должен устанавливать драйвер с компакт-
диска

1

Технически это возможно, если одно из устройств поддерживает USB OTG , в котором порт может выступать в качестве главного или подчиненного. Вы можете настроить устройство OTG в качестве ведомого и позволить ему выступать в качестве жесткого диска USB (так что вам даже не понадобится специальный драйвер на ведущем устройстве).

Это то, что делают многие телефоны и некоторые камеры. Если вы подключите их к принтеру, они станут главными; при подключении к ПК они становятся рабами.


1
USB OTG просто переключается между режимом USB-хоста и USB-устройства. Хотя это обычное явление для телефонов, я не знаю ни одного ПК с этой функцией. Эти ПК действительно существуют?
Лекенштейн

@Lekensteyn: для планшетов это не редкость, и некоторые планшеты действительно являются полноценными ПК. Однако, вероятно, существует высокая корреляция между USB-портами только для хоста и полным ПК.
Бен Фойгт

@lekensteyn отредактировал ответ только как одно из двух устройств, это не важно, отправитель или получатель. Думаю, мне все еще не хватает otg на стороне ПК. Это позор.
Лесто

Я верю, что это также называется Dual Role Data . Некоторые новые материнские платы поддерживают эту функцию - см., Например, эту страницу . Он задокументирован в спецификации чипсета, но обязательно включен на всех материнских платах.
Лучано

0

Я бы сделал это, используя два последовательных USB-кабеля и нулевое соединение между ними. Затем вы можете использовать xmodem, zmodem, kermit и т. Д. Для передачи файлов, или использовать ppp или slip для сети между двумя машинами. Старомодно, но будет работать.

Тад


1
Под «последовательными USB-кабелями» вы имеете в виду кабели, которые преобразуют из USB в какой-либо последовательный штекер и стандарт, такой как RS232 через DE-9? Так это в основном два преобразователя и кабель для последовательной связи? Кроме того, было бы неплохо получить немного больше информации о том, как использовать эти протоколы или где найти хорошую помощь по ним.
PhK

phk правильно, вы должны объяснить, что такое нулевое соединение. Ответ должен быть самодостаточным. Также, пожалуйста, используйте «вы» вместо «и», опять же ответ должен быть самостоятельным примером, а не сообщением на форуме
grochmal

При этом скорость передачи данных через USB 3 (5-10 Гбит / с) снизится до 0,001 Гбит / с, что примерно в 1000 раз медленнее, чем у стандартного гигабитного Ethernet. Вряд ли стоит усилий! Особенно если вам нравится OP, вы хотите поделиться дисками через соединение.
Мальвинус
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.