主题 : 关于触摸屏的问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 22132
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
综合积分: 6 分
注册时间: 2010-05-27
最后登录: 2010-09-01
楼主  发表于: 2010-06-24 18:16

 关于触摸屏的问题

我是按照光盘里的 移植开发实战指南的pdf里面说的搞的,结果也是触摸屏没有反应,启动时出现了一下信息
s3c2410 TouchScreen successfully loaded
input: s3c2410 TouchScreen as /class/input/input0
可是在/dev下没有相应的设备文件
走自己的路,让别人去说!
级别: 侠客
UID: 11808
精华: 0
发帖: 86
金钱: 450 两
威望: 90 点
综合积分: 172 分
注册时间: 2009-12-21
最后登录: 2014-04-10
1楼  发表于: 2010-06-30 09:45
碰到同样的问题··移植后····触摸屏无法使用,请高手指教指教··
对知识的追求永无止境
级别: 侠客
UID: 6147
精华: 0
发帖: 91
金钱: 640 两
威望: 241 点
综合积分: 182 分
注册时间: 2009-05-21
最后登录: 2011-06-23
2楼  发表于: 2010-06-30 12:27
正常移植后触摸屏会出现在/dev/input/eventN中,看上面的好像使用了sys/class里面了吧,调试下input_register_device里面,在input子系统中注册了
static int __init input_init(void)
{
    int err;

    err = class_register(&input_class);
    if (err) {
        printk(KERN_ERR "input: unable to register input_dev class\n");
        return err;
    }

    err = input_proc_init();
    if (err)
        goto fail1;

    err = register_chrdev(INPUT_MAJOR, "input", &input_fops);
    if (err) {
        printk(KERN_ERR "input: unable to register char major %d", INPUT_MAJOR);
        goto fail2;
    }

    return 0;

fail2:    input_proc_exit();
fail1:    class_unregister(&input_class);
    return err;
}
走自己的路,让别人去说!
级别: 侠客
UID: 11808
精华: 0
发帖: 86
金钱: 450 两
威望: 90 点
综合积分: 172 分
注册时间: 2009-12-21
最后登录: 2014-04-10
3楼  发表于: 2010-06-30 17:50

 回 2楼(mikej) 的帖子

我查看了下,有dev/input/event0这个文件,应该可以说明驱动移植成功了吧,可是就是不知道问题出在说什么地方了··触摸屏无反应。而友善之臂的内核在输入#cat proc/bus/input/devices输入的却是:
[root@FriendlyARM /]# cat proc/bus/input/devices
I: Bus=0013 Vendor=dead Product=beef Version=0101
N: Name="s3c2410 TouchScreen"
P: Phys=
S: Sysfs=/device/virtual/input/input0
U: Uniq=
H: Handlers=event0
B: EV=b
B: KEY=0
B: ABS=1000003
和我的不一样啊··我的是
[root@FriendlyARM /]# cat proc/bus/input/devices
I: Bus=0013 Vendor=dead Product=beef Version=0101
N: Name="s3c2410 TouchScreen"
P: Phys=
S: Sysfs=/class/input/input0
U: Uniq=
H: Handlers=event0
B: EV=b
B: KEY=0
B: ABS=1000003
请指教
对知识的追求永无止境
级别: 侠客
UID: 6147
精华: 0
发帖: 91
金钱: 640 两
威望: 241 点
综合积分: 182 分
注册时间: 2009-05-21
最后登录: 2011-06-23
4楼  发表于: 2010-06-30 23:24
你所说的没反应是指什么?可以自己写一个调试程序调试下,看有没有问题,可以参照tslib中ts_calcibrate文件,测试下,至于sysfs下面的应该是建立sys下节点时,路径不同吧
走自己的路,让别人去说!
级别: 侠客
UID: 11808
精华: 0
发帖: 86
金钱: 450 两
威望: 90 点
综合积分: 172 分
注册时间: 2009-12-21
最后登录: 2014-04-10
5楼  发表于: 2010-07-01 17:05

 回 4楼(mikej) 的帖子

这个路径很关键,发现在移植指南中有关Qtopia启动过程有这样的分析:Qtopia启动时自动判断Sysfs=/device/virtual/input/input0/uevent中是否包含touchscreen使Qtopia自动识别touchscreen和USB鼠标。我们看到由于touchscreen被创建到Sysfs=/class/input/input0。因此touchscreen无法被识别,那么我们如何将touchscreen创建到Sysfs=/device/virtual/input/input0对应的目录下呢,请大家指教
对知识的追求永无止境
走自己的路,让别人去说!
级别: 侠客
UID: 11808
精华: 0
发帖: 86
金钱: 450 两
威望: 90 点
综合积分: 172 分
注册时间: 2009-12-21
最后登录: 2014-04-10
6楼  发表于: 2010-07-01 17:07

 回 4楼(mikej) 的帖子

触摸屏的驱动,调试是正常的,可以输入坐标,但就是qtopia没有反应,问题就出在上面那个路径上。
对知识的追求永无止境