【问题标题】:Replacing Touchscreen driver in Android Kernel更换 Android 内核中的触摸屏驱动程序
【发布时间】:2011-11-17 12:37:33
【问题描述】:

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

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

关于如何将该 HID 设备链接到 Android 触摸屏层的任何线索?我看看他们是怎么做旧的电阻式的,它不是通过 HID 完成的,因为它是一种“定制”设备,ADC 集成在 CPU 中,并且不通过 USB。

【问题讨论】:

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


    【解决方案1】:

    我成功集成了触摸屏驱动程序。这里是一个粗略的步骤,只是为了让其他人知道它是如何工作的,他们将面临同样的问题。

    先把原来的触摸屏驱动去掉,防止冲突(make xconfig)

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

    之后它基本上工作了,除了一些与该问题无关的小问题(驱动程序用于稍微不同的芯片,位放置不同,易于修复)。

    【讨论】:

    • 你能告诉我如何改变/修改设备的内核吗?我也有同样的要求
    • 首先,你应该有你正在使用的板子内核的完整源代码。如果没有,您将不得不从头开始,并为板上的每一个硬件集成驱动程序。这是一项非常漫长的任务。如果您制作了自己的 CPU 卡,您很可能从参考设计开始,而不是重新发明轮子。您应该从用于您的设计所基于的参考设计的相同内核源代码和工具配置开始。如果您想自己完成整个事情,请考虑上市时间......内核是 30 000+ 个文件
    猜你喜欢
    • 2016-05-08
    • 2014-03-30
    • 2015-02-09
    • 1970-01-01
    • 2018-02-28
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多