更换Android内核中的触摸屏驱动程序

时间:2011-09-15 02:43:24

标签: android linux-kernel device-driver touchscreen android-source

我正在为我的自定义主板调整Gingerbread内核。我正在尝试更换使用片上ADC控制器(三星的S5PV210处理器)的电阻式触摸屏。在我的设计中,我需要一个eGalaxyTouch驱动程序支持的电容控制器。它连接到USB。可以从“make xconfig”菜单轻松启用驱动程序。它有点工作,因为我在串行控制台上添加了一些跟踪,我可以看到它在内核启动期间安装,我看到它在连接/断开USB电缆时安装和卸载。但它在Android用户界面中没有做任何事情。它是一种HID类型的设备。问题是它没有与正确的Android触摸屏软件层连接。我一定错过了什么。必须要有其他东西来强制将此HID连接到管理触摸屏的另一个软件层。

触摸屏驱动程序位于内核/驱动程序/输入/触摸屏上。内核/驱动程序/输入中也有一些代码。

有关如何将该HID设备链接到Android触摸屏图层的任何线索?我看看他们是如何做旧电阻的,而不是通过HID完成的,因为它是一个“定制”器件,其中ADC集成在CPU中,而不是通过USB。

1 个答案:

答案 0 :(得分:9)

我成功整合了触摸屏驱动程序。下面是一个粗略的想法,只是为了让它知道它如何适用于那些面临同样问题的人。

首先删除原始触摸屏驱动程序以防止冲突(make xconfig)

最初,我有一个不起作用的驱动程序,尽管它是由触摸屏制造商提供的。我决定尝试在内核树中使用eGalax触摸屏驱动程序。这是一个模块驱动程序。 仅在make xconfig中启用“模块设备驱动程序”是不够的。是的,它将允许编译.ko文件。但它不会告诉构建脚本如何处理file.ko,它们最终不会与目标系统中的内核一起使用。因此,您必须通过向构建脚本添加内容或手动将file.ko复制到正确的根/模块位置来执行操作,并在init中使用“insmod /modules/file.ko”命令添加模块的加载。 rc文件。不要忘记使用chmod命令将适当的特权设置为/ modules和modules / file.ko。

之后它基本上起作用,除了与该问题无关的一些小问题(驱动程序是针对略有不同的芯片,位置不同,容易修复)。