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设备;