全部博文(156)
分类: LINUX
2010-10-02 18:06:04
环境:
文件:
s3c2410_touchscreen.zip
大小:
4KB
下载:
下载
Ubuntu 8.10发行版
编译好的Linux-2.6.22内核
交叉编译器 arm-softfloat-linux-gnu-gcc-
下载补丁:
或者从上面下
找到第一个download 点击下载即可
(1)首先打一个补丁:s
将s
$cp s
$patch -p1 < s3c2410_touchscreen.patch(在内核下执行)
(2)然后修改arch/arm/mach-s
添加头文件:#include
添加结构体:static struct s
.delay = 20000,
.presc = 49,
.oversampling_shift = 2,
};
并添加支持触摸屏平台代码的信息,这个找到一个名为*smdk2410_devices[]的结构体指针数组里添加:&s
然后在smdk2410_map_io函数里添加:set_s
(3)修改driver/input/touchscreen/Makefile,添加如下内容:
obj-$(CONFIG_TOUCHSCREEN_S
(4)修改driver/input/touchscreen/s
注释掉
#include
添加
#include
还需修改/include/asm/arch/ts.h中
void __init set_s3c2410ts_info(struct s3c2410_ts_mach_info *hard_s3c2410ts_info);
为void set_s3c2410ts_info(struct s3c2410_ts_mach_info *hard_s3c2410ts_info);
修改下面内容
ts.dev->evbit[0] = BIT_MASK(EV_SYN) | BIT_MASK(EV_KEY) |
BIT_MASK(EV_ABS);
ts.dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
为
ts.dev->evbit[0] = 0xb;
ts.dev->keybit[0xa] = 0x400;
或
ts.dev->evbit[0] = BIT(EV_SYN) | BIT(EV_KEY) |
BIT(EV_ABS);
ts.dev->keybit[LONG(BTN_TOUCH)] = BIT(BTN_TOUCH
这两种方法都可以。
(5)修改arch/arm/mach-s
添加头文件#include
(6) make menuconfig 配置支持触摸屏驱动
Device Drivers --->
Input device support --->
<*> Event interface
[*]Touchscreens --->
<*>Samsung S
[*]Samsung S
(7)然后make zImage。
(8)拷贝zImage到tftpboot下
(9)系统启动以后会在dev目录下产生event0 和 mouse0两个设备节点,它们就是触摸屏的设备节点。
文件系统没有支持udev或mdev的话就必须进行下面步骤
mknod dev/event
mknod dev/mouse
cailantu20122012-11-19 17:18:26
您好,我想问一下,我做的文件系统,运行后,在dev/下没有event0这个设备,我的文件系统有mdev -s这样的rcS中,内核也勾选了相应的触摸屏支持,想咨询下,这个问题是还有哪个地方没有做到位么?