2016-09-22 38 views
13

摘要(我们所做的,我们已经尝试过)之间通过USB连接亚行:如何建立两台PC

基本上,目的是通过USB建立两个Linux的计算机之间的ADB协议通过使用adb源代码。

Envinronment是Ubuntu 16.0.4。有android-tools-adbd(adb daemon)软件包随时准备在池中使用,其源代码可用。

这个link(adbd)也有一个源代码,可以编译为gcc选项-stc = C++ 14,默认支持16.0.4(或gcc 5.2)。

我们可以通过使用adb connect(取决于TCP/IP)成功地从源代码构建包或使用已经构建的包。如果两台计算机连接到同一网络,则通过TCP/IP连接adb没有问题。

不幸的是,我们无法在两台电脑之间使用A到A(两根公头)电缆设置USB连接。 亚行小工具不能正常工作并且没有任何设备识别其他设备。除了ADB小工具外,我们无法决定是否需要明确的驱动程序。

问题是(REAL要回答的问题):

如何设置两个Linux的计算机之间的USB协议,亚行通信可以通过USB来实现?

有什么解决方案吗?

[---编辑---]

注:

  • 去一天一天进一步,左小问题。对于那些想参与进来的人来说,我们正在关注this guide

  • (内核版本4.4.0-38-通用)

  • 经与运行正确的UDC(USB设备控制器)的驱动程序问题。通过modprobe usb_f_fs,xdg-adbd(可从源代码链接执行,adbd)激活ConfigFS后正常工作,直到检测到udc驱动程序的if(...)。我们尝试运行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,这是试图设置两台计算机之间用A到A(男性)电缆 USB连接,并期望它的工作相反。

  2. Linaro(发布该指南的组织)因其在ARM平台上改进Linux的工作而被称为 。该指南只是 不适用于基于x86的PC。

以外,你需要明白USBUSB Host(主)之间的非对称协议和USB Device(从)。这条规则没有办法解决。为了能够使用USB连接2个设备 - 一个设备需要将USB控制器配置为USB Host,另一个需要将USB控制器配置为USB Device。个人计算机中使用的硬件USB控制器的问题(独立的或内置于英特尔PCH)的问题是它们只能用作USB Host。没有软件可以改变这一点。

为了证明您期望的结果是可能的,您链接到的所有项目和资源都是针对与PC不同的平台而开发的。

如果您坚持使用PC作为USB Device - 很少有商用USB适配器(主要是USB控制器评估板),它们使用带UDC支持的USB控制器芯片。但由于它们的稀有性,它们通常非常昂贵(我见过的价格大约是200美元)。所以如果你的初衷是通过切换到商品硬件来降低开发成本 - 这个选项也不会帮助你。

这是怎么了这种适配器的一个样子: NET2280EVB

相关问题