2016-09-22 2 views
13

Резюме (То, что мы сделали, что мы пытались):Как установить ADB соединение через USB между двумя компьютерами

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

Envinronment - Ubuntu 16.0.4. Есть пакет android-tools-adbd (adb daemon), готовый для использования в пуле с доступным исходным кодом.

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

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

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

Вопрос (РЕАЛ вопрос ответить):

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

Есть ли решение для этого?

[--- EDIT ---]

ПРИМЕЧАНИЯ:

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

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

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

(27.09.2016)


+2

'udc' водитель не какой-то абстрактный -' udc' драйвера зависит от аппаратного обеспечения. причина, по которой ваша попытка «modprobe musb_hdrc» потерпела неудачу, заключается в том, что «musb_hdrc» является драйвером для конкретного чипа контроллера USB, который просто не находится в вашей системе. http://processors.wiki.ti.com/index.php/ Inventra_HDRC_USB_Controller –

+0

Все те проекты, которые вы обнаружили, когда люди успевали заставить 'adbd' работать в своих системах, похоже, вас очень смущают. Часть, которую вам кажется недостающей, заключается в том, что все эти истории успеха были достигнуты на встроенных платах разработки, которые использовали поддерживаемые чипы USB Device Controller. Который ни один из обычных ПК 'x86' не имеет. –

ответ

5

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

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

  2. Линаро (организация, опубликовавшая руководство) известна как за работу по улучшению 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

Смежные вопросы