1. 项目概述
最近在给一块4.3寸的触摸屏适配Linux驱动时,遇到了不少坑。正点原子提供的GT9147驱动和设备树修改方案确实帮了大忙,但实际操作过程中还是有不少需要注意的细节。本文将详细记录整个编译过程,包括内核配置、设备树修改以及tslib测试等关键步骤。
触摸屏驱动开发是嵌入式Linux系统开发中常见但又容易出问题的环节。GT9147作为一款广泛使用的电容触摸屏控制器,其驱动适配过程涉及内核配置、设备树修改、中断处理等多个方面。正点原子提供的修改版内核已经做了不少工作,但要想在自己的板子上跑起来,还需要一些细致的调整。
2. 环境准备与内核源码处理
2.1 获取正点原子修改版内核
正点原子提供的Linux内核已经对GT9147驱动做了适配,我们需要先获取这个修改版内核。通常可以从正点原子的官方资料包中找到,或者从他们的Git仓库克隆:
bash复制git clone https://github.com/正点原子/linux.git
cd linux
git checkout imx6ull-alientek-emmc
注意:实际操作时请替换为正确的仓库地址和分支名称。正点原子通常会提供完整的内核源码包,解压后即可使用。
2.2 驱动文件拷贝
正点原子修改版内核中的drivers/input/touchscreen目录下已经包含了适配好的gt9xx.c和gt9xx.h文件。我们需要将这些文件拷贝到目标内核的对应目录:
bash复制cp /path/to/alientek-kernel/drivers/input/touchscreen/gt9xx.* /path/to/target-kernel/drivers/input/touchscreen/
这一步看似简单,但有几点需要注意:
- 确保目标内核版本与正点原子修改版内核版本一致或兼容
- 检查文件权限,确保拷贝后权限正确
- 如果目标内核已经有GT9XX驱动,建议先备份原有文件
3. 内核配置与编译
3.1 修改Kconfig文件
为了让内核编译系统能够识别新添加的驱动,需要修改drivers/input/touchscreen/Kconfig文件。在350行左右添加以下内容:
`
