问题:
Beaglebone 中的 Android JellyBean4.1.2 无法识别部分华为 USB Dongle。
详细信息:
我正在使用在 Android JellyBean4.1.2 上运行的 BeagleBone。
Huawei - E1731 [已锁定]、Huawei - E303D [已锁定]
在此平台上工作正常。
Huawei E303F 、Huawei E303F(均出厂解锁)
无法识别 操作系统
(未生成通信文件)
我自己解决
- 使用 AT 命令将加密狗的模式更改为调制解调器模式
- 将供应商 ID 和产品 ID 添加到 init.devicename.sh(强制内核识别 USB Dongle)
- 用 VID 和 PID 更改 USB-Modeswitch 文件
现在提到的 USB Dongles 工作正常。
但我想找到根本原因并且必须解决它。
是否有任何选项可以通过从源代码构建 Android 操作系统来修复它?如果是,如何?哪些文件需要更改?
为什么有些加密狗在没有提到的解决方法的情况下直接被识别?
更新
正如 skoperst 所说,我已经检查了 kernel_dir/drivers/usb/serial/option.c
中的 option.c
除了硬编码设备 VID 和 PID 之外,是否有任何解决方案
。
我需要一些更通用的解决方案,以促进
即插即用
机制。即插即用在 linux 中的工作原理
。如果可以使用linux kernal
, Android 也可以吗?
感谢您的宝贵建议。非常感谢。
最佳答案
您的问题与在您使用的设备上运行的内核有关,与 Android 操作系统无关。
支持哪种 USB 设备(即 vid/pid 的哪种组合)取决于内核中定义的哪些集合,它是硬编码的。
具体来说,您需要针对特定 VID 和 PID 的 USB 串行设备定义(AKA ttyUSB),它们通常位于:kernel_dir/drivers/usb/serial/option.c 对于您希望设备能够识别的任何其他驱动程序也是如此。
关于android - Android 中的 USB Dongle 识别 - Beaglebone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27616045/