Android中的USB Dongle识别 – Beaglebone

问题 :

部分华为USB Dongle在Beaglebone中未被Android JellyBean4.1.2识别。

详细 :

我正在使用Android JellyBean4.1.2上运行的BeagleBone。

Huawei - E1731 [Locked] , Huawei - E303D [Locked]在这个平台上工作正常

Huawei E303F , Huawei E303F (Both Factory Unlocked)无法被OS 识别 (通讯文件未生成)

我自己做的解决方法

  1. 使用AT命令将Dongle模式更改为仅调制解调器模式

在这里输入图像说明

  1. 将供应商ID和产品ID添加到init.devicename.sh(强制内核识别USB Dongle)

在这里输入图像说明

  1. 使用VID和PID更改USB模式开关文件

在这里输入图像说明

现在提到的USB软件狗工作正常。

在这里输入图像说明

  • 但是我想find根本原因并且必须解决它。

  • 有没有任何select通过从源代码构buildAndroid操作系统来解决它? 如果是的话,怎么样? 哪些文件需要更改?

  • 为什么有些软件狗直接识别没有提到的解决方法?

UPDATE

正如skoperst所说,我在kernel_dir/drivers/usb/serial/option.c

在这里输入图像说明

  • other than hard-coding Device VID & PID是否还有其他的解决scheme。

  • 我需要一些更通用的解决scheme,以促进Plug & Play机制。

  • 如何Plug & Play works in linux 。如果它是可能的linux kernal ,也可以与Android?

你的伟大build议表示赞赏 很多提前感谢。

Solutions Collecting From Web of "Android中的USB Dongle识别 – Beaglebone"

你的问题是在你使用的设备上运行的内核,而不是在Android操作系统上运行。

哪个USB设备被支持(IE是哪个组合的vid / pid)取决于在内核中定义了哪些集合,它是硬编码的。

具体而言,您需要USB串行设备定义(AKA ttyUSB)为您特定的VID和PID,它们通常位于: kernel_dir / drivers / usb / serial / option.c对于您希望设备识别的任何其他驱动程序也是如此。