0

我有一个 USB 设备(指纹读取器),我将其连接到 Galaxy S2(因为它支持 USB 主机模式)并在我自己的应用程序中使用它,利用最新的 Android USB API http://developer.android.com/reference/安卓/硬件/usb/UsbDevice.html

当我将阅读器连接到手机时,它显示“未知USB外围设备”并且阅读器已打开,因此没有电源问题。我有阅读器的 Linux 驱动源代码,所以如果需要我可以为 ARM 架构编译它。

如何将此驱动程序集成到 Android 内核中(如果可能,因为它基于 Linux)?是否可以创建一个单独的模块?绝对需要root权限?

或者更简单,我可以通过 USB API 确定外围设备类型吗?

4

3 回答 3

0

您可以在此处找到集成指南: http ://android.serverbox.ch/?p=285

虽然这个例子展示了如何为 Honeycomb 编译一个 ftdi 驱动程序,但它可以帮助你入门。

于 2011-11-26T19:07:37.323 回答
0

您必须将您的 linux 驱动程序编译为一个模块才能获得“fingerprintdriver.ko”。就像它是带有 ARM 交叉编译器的 linux 2.6.35(版本取决于您的 Android 版本)驱动程序一样。现在,我在博客上看到你应该从 Android 工具包中获取 ARM 编译器,因为它有一点点不同,有时会有所不同,但我自己从未尝试过,因为我使用的是 Android 提供的编译器开发套件。然后您将使用命令“insmod /modules/fingerprintdriver.ko”安装它。您还应该将它放在“init.rc”文件中,以便它在引导时自行安装。但取决于驱动程序,Android API 可能不会(很可能不会)看到它。如果这是你想要的,你将不得不编写一段代码来让设备被视为,例如,一个“传感器”。然后,您的设备将可供整个 Android 程序员社区使用。如果您只想将它​​用于您自己的目的,而不是供整个 Android 应用程序程序员社区使用,您可能只想通过 USB API 使用它。少为你工作。

希望这点小信息能有所帮助。

于 2011-12-01T13:43:02.807 回答
0

我知道这些 API 可能不兼容。但是由于 Galaxy 本身支持 USB Host 模式,所以可能没有问题......

但是,关于使用单独模块将驱动程序集成到内核中,是否有解释该过程的指南?

于 2011-08-25T07:59:26.893 回答