适用于三星Galaxy S2的Android外设驱动程序集成

时间:2011-08-24 15:53:47

标签: android usb kernel driver galaxy

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

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

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

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

3 个答案:

答案 0 :(得分:0)

我知道可能与API不兼容。 但由于Galaxy本身支持USB主机模式,可能没有问题......

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

答案 1 :(得分:0)

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

虽然这个例子展示了如何为Honeycomb编译ftdi驱动程序,但它可以让你开始。

答案 2 :(得分: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使用它。为你工作的工作少得多。

希望这条小信息有所帮助。