Подтвердить что ты не робот

Как установить соединение adb через USB между двумя ПК

Резюме (что мы сделали, что мы пробовали):

В принципе, целью является создание протокола adb через usb между двумя Linux-компьютерами с использованием исходных кодов adb.

Envinronment - Ubuntu 16.0.4. Там андроид-tools-adbd (adb daemon) пакет готов к использованию в пуле с доступным исходным кодом.

Существует также источник этой link (adbd), который компилируется с опцией gcc -stc = С++ 14, которая поддерживается в 16.0. 4 по умолчанию (или gcc 5.2).

Мы можем построить пакет из источника или использовать уже построенный один, используя adb-соединение (зависит от TCP/IP). Нет проблем с подключением adb через TCP/IP, если два компьютера подключены к одной сети.

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

Вопрос (РЕАЛЬНЫЙ вопрос, на который нужно ответить):

Как установить протокол USB между двумя Linux-компьютерами, чтобы связь с adb была выполнена через USB?

Есть ли какое-нибудь решение для этого?

[--- --- EDIT]

ПРИМЕЧАНИЯ:

  • Продолжая день ото дня, оставались небольшие проблемы. Для тех, кто хочет участвовать; мы следуем это руководство.

  • (версия ядра 4.4.0-38)

  • У вас возникли проблемы с запуском правильного драйвера udc (USB Device Controller). После активации ConfigFS с помощью modprobe usb_f_fs, xdg-adbd (исполняемый файл из исходного кода, adbd) работает нормально, пока if(...) не обнаружит драйвер udc. Мы попробовали запустить modprobe musb_hdrc, но не видели явного имени драйвера под /sys/class/udc.

(27.09.2016)


4b9b3361

Ответ 1

Во-первых, позвольте мне указать лишь пару вопросов о руководстве, в котором вы сказали, что следуете:

  • он требует (он говорит так в самом первом абзаце), вы понять USB, что противоположно попытке установить соединение USB между двумя компьютерами с помощью кабеля A-A (оба) и ожидая его работы.

  • Известно, что Линаро (организация, опубликовавшая руководство) за его работу по улучшению Linux на платформе ARM. Руководство просто делает не применяются к компьютерам на базе x86.

Кроме того, вам нужно понять, что USB - это асимметричный протокол между USB Host (ведущим) и USB Device (ведомый). Это правило не существует. Чтобы иметь возможность подключать 2 устройства с помощью USB - для одного устройства должен быть настроен USB-контроллер как USB Host, а другой должен иметь контроллер USB, настроенный как USB Device. Проблема с аппаратными USB-контроллерами, которые используются на персональных компьютерах (автономных или встроенных в Intel PCH), заключается в том, что они могут работать только как USB Host. Никакое программное обеспечение не может изменить это.

Все проекты и ресурсы, на которые вы ссылались в своем вопросе, пытаясь доказать, что ваш желаемый результат возможен, были разработаны для платформ, отличных от ПК.

Если вы настаиваете на использовании ПК в качестве USB Device, очень мало доступных в продаже USB-адаптеров (в основном, плат USB-контроллера), которые используют чипы USB-контроллера с поддержкой UDC. Но из-за их редкости они обычно довольно дороги (те, что я видел, продавались примерно за 200 долларов). Поэтому, если ваше первоначальное намерение заключалось в том, чтобы снизить затраты на разработку, переключившись на товарное оборудование - этот вариант вам тоже не поможет.

Вот как выглядит один из таких адаптеров: NET2280EVB