写这篇博客的原因:在我自己制作的内核zImage 通过tftp挂载到开发板上后使用触摸屏,按压触摸屏后在后台没有收到任何的反馈。后来发现是我自己制作的zImage没有安装触摸屏驱动。
安装触摸屏驱动
一、源码获取
你自己需要自己去下载
已下载,在目录:
D:\Documents\Desktop\自学成才\嵌入式\ARM嵌入式\课件&代码\课件&代码\课件\5.linux驱动开发\5.9.触摸屏驱动移植实战\gslX680
驱动程序里只有这三个文件
二、源码加入内核中
将gslX680
目录中的三个有效文件通过共享目录copy到ubuntu
中自己制作的kernel中touchscreen所在目录:
root/driver/kernel/drivers/input/touchscreen
cp /mnt/hgfs/Linux_Share/gsl* ./
三、mach文件中添加board_info
进入以下目录,修改其中的mach-x210.c
文件
/root/driver/kernel/arch/arm/mach-s5pv210
定义一个宏名,譬如:CONFIG_TOUCHSCREEN_GSLX680
添加下图红色框中的代码
注意:其中的 gslX680 和 0x40 要与gslX680.c
中的定义一致
在gslX680
目录中有一PDF文件对这有介绍
四、在Makefile中使用宏来条件配置
进入到以下目录,修改其中的Makefile
文件
/root/driver/kernel/drivers/input/touchscreen
添加以下代码(注意大小写):
obj-$(CONFIG_TOUCHSCREEN_GSLX680) += gslX680.o gsl_point_id
五、在Kconfig项目中添加宏的配置项
进入到以下目录,修改其中的Kconfig
文件
/root/driver/kernel/drivers/input/touchscreen
在文件末尾添加以下代码(注意添加位置,在endif
上面):
其中TOUCHSCREEN_GSLX680
要与第三步中定义的宏后两个一致
config TOUCHSCREEN_GSLX680
tristate "gslX680 touchscreen drive"
depends on I2C
help
This enables support for gslX680 over I2C based touchscreens.
六、make menuconfig并选择Y或者N
进入到以下目录,输入以下命令
/root/driver/kernel
make menuconfig
找到gslX680 touchscreen drive
,将其打成已选择状态
七、退出menuconfig后,就可进行make
make完成后,进入到以下目录,将该目录下的zImage
复制到tftp共享目录
中
/root/driver/kernel/arch/arm/boot