• 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设备;
  • 相关阅读:
    angularjs中directive声明scope对象的用法
    MongoDB win32-bit 安装
    javascript Date对象 之 date初始化
    javascript Date对象 之 时间转字符串
    javascript Date对象 之 获取时间
    javascript Date对象 之 设置时间
    Javascript 小数保留2位
    javascript 中的比较大小,兼 typeof()用法
    IE6/7 下:inline-block解决方案
    js刷新页面 location.reload()
  • 原文地址:https://www.cnblogs.com/zengjfgit/p/4958450.html
Copyright © 2020-2023  润新知