Распознавание USB-ключа в Android - Beaglebone

Выпуск:

Некоторые из USB-ключей Huawei не распознаются Android JellyBean4.1.2 в Beaglebone.

В деталях:

Я работаю с BeagleBone под управлением Android JellyBean4.1.2.

Huawei - E1731 [Locked] , Huawei - E303D [Locked] работают нормально на этой платформе.

Huawei E303F , Huawei E303F (Both Factory Unlocked) не распознаются ОС (файлы связи не генерируются)

Обход, сделанный мной сам

  1. Измените режим ключа на режим только модема с помощью команды AT

  1. Добавьте идентификатор поставщика и идентификатор продукта в файл init.de vicename.sh (заставьте ядро ​​распознать USB-ключ)

  1. Измените файл USB-режима с помощью VID и PID

Теперь упомянутые USB-ключи работают нормально.

  • Но я хочу найти основную причину и должен это исправить.

  • Есть ли возможность исправить это путем сборки ОС Android из исходного кода? Если да, то как? Какие файлы нужно изменить?

  • Почему некоторые ключи напрямую распознаются без упомянутого обходного пути?

ОБНОВИТЬ

Как сказал Скоперст, я проверил option.c в kernel_dir/drivers/usb/serial/option.c

  • Есть ли решение other than hard-coding Device VID & PID,

  • Мне нужно более общее решение, чтобы облегчить Plug & Play механизм.

  • Как Plug & Play works in linux. Если это возможно с linux kernal, это тоже возможно с Android?

Ваши отличные предложения приветствуются. Большое спасибо заранее.

1 ответ

Решение

Ваша проблема связана с ядром, работающим на используемом устройстве, а не с ОС Android.

Какие USB-устройства поддерживаются (т.е. какая комбинация vid / pid) зависит от того, какие наборы определены в ядре, его жестко запрограммировано.

В частности, вам нужно определение последовательного USB-устройства (AKA ttyUSB) для конкретных VID и PID, и они обычно находятся в: kernel_dir / drivers / usb / serial / option.c Это также верно для любого другого драйвера, который вы хотите, чтобы устройство распознало.

Другие вопросы по тегам