I.MX6 Linux eGTouch TouchScreen porting

                    I.MX6 Linux eGTouch TouchScreen porting

一、Download Driver:
    http://www.eeti.com.tw/drivers_Linux.html

二、阅读:EETI eGTouch Linux Programming Guide

三、系统启动配置:
    ......
    # 本人直接将驱动放在内核里了,并没有做成模块
    # insmod /module/hid-multitouch.ko
    # 使用eGTouch_v2.5.4330.L-ma/eGTouchARM/eGTouchARMnonX里面的文件
    /usr/bin/eGTouchD &

    # sleep 1      # 我是通过这个sleep 1发现是设备节点不存在造成的
    while [ ! -e /dev/input/event4 ]
    do
        echo "please hang up USB TOUCH !"
        usleep 10  # 自己写的C延时程序当shell命令用
    done

    export TSLIB_ROOT=/usr/local/tslib-instal
    export TSLIB_TSDEVICE=/dev/input/event4
    export TSLIB_CALIBFILE=/etc/pointercal
    export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
    export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
    export TSLIB_FBDEVICE=/dev/fb0
    export PATH=/usr/local/tslib-instal:$PATH
    export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.8.5-arm/lib
    export QT_QWS_FONTDIR=/usr/local/Trolltech/QtEmbedded-4.8.5-arm/lib/fonts
    export QWS_MOUSE_PROTO=tslib:/dev/input/event4
    ......

四、问题集锦:
    1. 问题1:不确定那个input输入:
        解决方法:
            1. 运行:cat /proc/bus/input/devices;
                root@freescale /etc$ cat /proc/bus/input/devices
                ......

                I: Bus=0006 Vendor=0eef Product=0020 Version=0001
                N: Name="eGalaxTouch Virtual Device for Multi"
                P: Phys=
                S: Sysfs=/devices/virtual/input/input5
                U: Uniq=
                H: Handlers=cpufreq_interactive event4
                B: PROP=2
                B: EV=b
                B: KEY=400 0 0 0 0 0 0 0 0 0 0
                B: ABS=6608000 1000003

                I: Bus=0006 Vendor=0eef Product=0010 Version=0001
                N: Name="eGalaxTouch Virtual Device for Single"
                P: Phys=
                S: Sysfs=/devices/virtual/input/input6
                U: Uniq=
                H: Handlers=event5
                B: PROP=2
                B: EV=b
                B: KEY=30000 0 0 0 0 0 0 0 0
                B: ABS=3

                root@freescale /etc$
            2. 通过H:Handlers确定eGTouch对应的是/dev/input/event4、/dev/input/event5,
                两个都试一下就知道哪个能用了。

    2. 问题2:系统第一次开机时执行ts_calibrate闪退(经常连闪都看不到),导致无法正常校正:
        解决方法:
            在/usr/bin/eGTouchD &设备插入检测机制,原因是,生成上面的event4、 event5
            是需要一点时间的,这样后面的tslib才能正确的识别。
            while [ ! -e /dev/input/event4 ]
            do
                echo "please hang up USB TOUCH !"
                usleep 10
            done

    3. 问题3:tslib: Selected device is not a touchscreen (must support ABS and KEY event types)
        解决方法:
            1. 可能是因为驱动不支持,更换标准的驱动,因为有些驱动是别人在标准驱动上
                修改的驱动,所以最好换成官方标准的驱动;
            2. export TSLIB_TSDEVICE=/dev/input/event4指向的input设备不正确,注意
                修改成正确的input设备;

 

时间: 2024-10-13 21:44:02

I.MX6 Linux eGTouch TouchScreen porting的相关文章

I.MX6 Linux udev porting

/*********************************************************************** * I.MX6 Linux udev porting * 声明: * 在嵌入式产品上,我们可以使用mdev来解决热插拔的问题,同时也经常看到 * udev,所以尝试来移植一下,但是最终发现她会丢失内核阶段产生的uevent, * 这导致无法生成内核阶段产生的设备节点,目前采用了mdev来做完成内核阶段的 * 设备节点生成,之后使用udev完成热插拔,这

I.MX6 Goodix GT9xx touchscreen driver porting

/************************************************************************ * I.MX6 Goodix GT9xx touchscreen driver porting * 声明: * 本文主要是记录GT9xx电容Touch移植过程中遇到的一些问题. * * 2016-1-27 深圳 南山平山村 曾剑锋 ************************************************************

I.MX6 linux kernel编译错误处理

/******************************************************************************** * I.MX6 linux kernel编译错误处理 * 声明: * 本文仅仅是对I.MX6的linux内核编译出错,记录其对应的处理方法. * * 2015-10-15 晴 深圳 南山平山村 曾剑锋 *******************************************************************

I.MX6 Linux Qt 启动流程跟踪

/************************************************************************** * I.MX6 Linux Qt 启动流程跟踪 * 声明: * 1. 源代码来源MY-I.MX6: * 2. 本文仅仅是对启动流程的解析,没有解释启动流程为什么是这样的问题. * * 2015-6-13 深圳 晴 南山平山村 曾剑锋 *********************************************************

I.MX6 linux tslib Corrupt calibration data

I.MX6 linux tslib Corrupt calibration data 一.tslib出错 Corrupt calibration data 二.解决方法: ...... if [ -f /etc/pointercal ];then echo "I.MX6 touchscreen have calibrate!" else /usr/bin/ts_calibrate # 一定要注意添加这个同步,否则校正完,快速关机, # 容易报 Corrupt calibration d

I.MX6 linux Qt 同时支持Touch、mouse

/***************************************************************************** * I.MX6 linux Qt 同时支持Touch.mouse * 声明: * 在Qt上,有时候当没有Touch的时候,我们会希望鼠标还是能够使用的,于是乎 * 这又变成了一个看上去必须的需求了,所以这也就变成了一个需要解决的问题,当然 * 这又解决Touch存在还是不存在的问题,以及如何跟mouse共存的问题. * * 2016-1-1

I.MX6 Linux 自动获取AR1020 event input节点

/*********************************************************************** * I.MX6 Linux 自动获取AR1020 event input节点 * 说明: * 本文主要记录如何自动获取AR1020 SPI电阻Touch产生的设备节点. * * 2016-4-5 深圳 南山平山村 曾剑锋 ******************************************************************

I.MX6 Linux I2C device& driver hacking

/******************************************************************************************* * I.MX6 Linux I2C device& driver hacking * 声明: * 1. 本文主要是对Linux I2C驱动进行代码跟踪,主要是为了能够对I2C驱动框架有个全面的了解: * 2. 本文源代码来自myzr_android4_2_2_1_1_0.tar.bz2: * 3. 如果你有兴趣,

I.MX6 Linux、Jni ioctl 差异

/*********************************************************************** * I.MX6 Linux.Jni ioctl 差异 * 声明: * 在使用Jni的ioctl()的过程中,发现不能像普通的Linux函数那样使用, * 必须使用3各参数的ioctl()函数. * * 2015-12-20 深圳 南山平山村 曾剑锋 ****************************************************