Интеграция драйвера USB периферийного устройства в Android для Samsung Galaxy S2 - PullRequest
0 голосов
/ 24 августа 2011

У меня есть USB-устройство (сканер отпечатков пальцев), которое я подключаю к Galaxy S2 (так как он поддерживает режим USB-хоста) и использую его в своем собственном приложении, используя новейшие Android USB API http://developer.android.com/reference/android/hardware/usb/UsbDevice.html

Когда я подключаю ридер к телефону, он говорит «неизвестное периферийное устройство USB», и ридер включается, поэтому проблем с питанием нет.У меня есть исходный код считывателя драйвера Linux, так что я могу скомпилировать его для архитектуры ARM при необходимости.

Как я могу интегрировать этот драйвер в ядро ​​Android (если это возможно, поскольку он основан на Linux)??Возможно ли создать отдельный модуль ??Права суперпользователя абсолютно необходимы?

Или, может быть, проще определить тип периферийного устройства через API-интерфейсы USB ??

Ответы [ 3 ]

0 голосов
/ 26 ноября 2011

Руководство по интеграции вы можете найти здесь: http://android.serverbox.ch/?p=285

Хотя в этом примере показано, как скомпилировать драйвер ftdi для Honeycomb, он может помочь вам начать работу.

0 голосов
/ 01 декабря 2011

Вам нужно будет скомпилировать драйвер linux как модуль, чтобы получить "fingerprintdriver.ko".Сделайте точно так же, как если бы это был драйвер Linux 2.6.35 (версия зависит от вашей версии Android) с кросс-компилятором ARM.Теперь я видел в блогах, что вы должны получить компилятор ARM из набора инструментов Android, поскольку есть небольшая разница, которая иногда имеет значение, но я никогда не пробовал сам, так как я использую тот, который поставляется с AndroidКомплект разработчика.Затем вы установите его с помощью команды «insmod /modules/fingerprintdriver.ko».Вы также должны поместить его в файл «init.rc», чтобы он устанавливался во время загрузки.Но в зависимости от драйвера, он может (скорее всего, не) быть замечен API Android.Если это то, что вы хотите, вам придется написать кусок кода, чтобы устройство было видно, например, как «датчик».Тогда ваше устройство станет доступным всему сообществу программистов Android.Если вы просто хотите использовать его для своих собственных целей, а не для всего сообщества разработчиков приложений для Android, вы, вероятно, просто захотите использовать его через USB API.Гораздо меньше работы для вас.

Надеюсь, эта небольшая информация поможет вам.

0 голосов
/ 25 августа 2011

Я знаю, что может быть несовместимость с API. Но поскольку Galaxy изначально поддерживает режим USB Host, возможно, здесь нет проблем ...

Однако, что касается интеграции драйвера в ядро ​​с отдельным модулем, есть ли руководство, объясняющее процедуру?

...