Распознавание 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)
не распознаются ОС (файлы связи не генерируются)
Обход, сделанный мной сам
- Измените режим ключа на режим только модема с помощью команды AT
- Добавьте идентификатор поставщика и идентификатор продукта в файл init.de vicename.sh (заставьте ядро распознать USB-ключ)
- Измените файл 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 Это также верно для любого другого драйвера, который вы хотите, чтобы устройство распознало.