Возможна ли передача данных с 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.