Android 如何在两台电脑之间通过USB建立adb连接

Android 如何在两台电脑之间通过USB建立adb连接,android,usb,adb,linux-device-driver,adb-drivers,Android,Usb,Adb,Linux Device Driver,Adb Drivers,总结(我们做了什么,尝试了什么): 基本上,目标是通过使用adb源代码在两台linux计算机之间通过usb建立adb协议 环境是Ubuntu 16.0.4。有一个android tools adbd(adb守护进程)包可以在池中使用,其源代码可用 此(adbd)上还有一个源代码,可使用gcc选项-stc=c++14编译,默认情况下16.0.4支持该选项(或) 我们能够从源代码构建包,或者使用adb connect(依赖于TCP/IP)成功地使用已经构建的包。如果两台计算机连接到同一网络,则通过T

总结(我们做了什么,尝试了什么):

基本上,目标是通过使用adb源代码在两台linux计算机之间通过usb建立adb协议

环境是Ubuntu 16.0.4。有一个android tools adbd(adb守护进程)包可以在池中使用,其源代码可用

此(adbd)上还有一个源代码,可使用gcc选项-stc=c++14编译,默认情况下16.0.4支持该选项(或)

我们能够从源代码构建包,或者使用adb connect(依赖于TCP/IP)成功地使用已经构建的包。如果两台计算机连接到同一网络,则通过TCP/IP进行adb连接不会出现问题

不幸的是,我们无法使用a到a(均为公端)电缆在两台计算机之间设置USB连接ADB小工具不工作,并且没有一台设备能够识别其他设备。我们无法决定是否需要ADB小工具之外的显式驱动程序

问题是(真正需要回答的问题):

如何在两台linux计算机之间设置USB协议,以便通过USB进行adb通信?

有什么解决办法吗

[---编辑---]

注意事项:

  • 越走越远,小问题就越少。对于那些想参与其中的人;我们正在跟进

  • (内核版本4.4.0-38-generic)

  • 运行正确的udc(USB设备控制器)驱动程序时出现问题。通过
    modprobe usb_f_fs
    激活ConfigFS后,
    xdg adbd
    (可从源链接执行,adbd)工作正常,直到检测到udc驱动程序的
    if(…)
    。我们尝试运行
    modprobe musb_hdrc
    ,但在
    /sys/class/udc
    下没有看到明确的驱动程序名称

(27.09.2016)



首先,让我指出你说的以下几点:

  • 它要求(它在第一段中这样说)你 了解USB,这与尝试使用a到a(均为插头)电缆在两台计算机之间设置USB连接相反 并期望它能起作用

  • Linaro(出版指南的组织)是众所周知的 感谢其在ARM平台上改进Linux的工作。导游就是这么做的 不适用于基于x86的PC

  • 除此之外,您需要了解
    USB
    USB主机
    (主设备)和
    USB设备
    (从设备)之间的非对称协议。这条规则是无法绕开的。要使用
    USB
    连接两台设备,一台设备需要将USB控制器配置为
    USB主机
    ,另一台设备需要将USB控制器配置为
    USB设备
    。个人计算机(独立或内置于英特尔PCH)中使用的硬件USB控制器的问题在于,它们只能作为
    USB主机
    工作。没有软件可以改变这一点

    您在问题中链接的所有项目和资源都是为不同于PC的平台开发的,这些项目和资源旨在证明您所期望的结果是可能的

    如果您坚持将PC用作
    USB设备
    ——市面上很少有USB适配器(主要是USB控制器评估板),它们使用支持UDC的USB控制器芯片。但由于它们的稀有性,它们通常相当昂贵(我见过的那些售价约为200美元)。因此,如果您的初衷是通过切换到商品硬件来降低开发成本,那么这个选项也不会对您有所帮助

    这是其中一个适配器的外观:
    udc
    驱动程序不是抽象的-
    udc
    驱动程序依赖于硬件。您的
    modprobe musb_hdrc
    尝试失败的原因是
    musb_hdrc
    是一个特定的
    USB
    控制器芯片的驱动程序,它根本不在您的系统中。您发现的所有那些项目都是人们设法在系统上制作
    adbd
    的,这让您感到非常困惑。您似乎缺少的一点是,所有这些成功案例都是在使用受支持的
    USB设备控制器
    芯片的嵌入式开发板上实现的。主流的
    x86
    PC都没有。