MiniGui-Tslib错误解决方法.doc
文本预览下载声明
移植了新内核版本2.6.38,然后想重新做个qt文件系统,我利用busybox制作一个基本文件系统,烧写到开发板上,然后就想先试试tslib触摸屏校准是否好用,刚开始使用的是tslib1.14这个版本,编译后下载到文件系统上,设置好环境变量,运行ts_calibrate ,然后就出来了一句话:“selected device is not a touchscreen I understand”,点击触摸屏无反应,赶紧查看原因,
1、查看内核启动信息,有如下内容:
mousedev: PS/2 mouse device common for all mice
samsung-ts s3c2410-ts: driver attached, registering input device
input: S3C24XX TouchScreen as /devices/virtual/input/input0
2.cd dev/input,ls,显示有event0 mice mouse0,再ls -l
crw------- 1 0 0 13, 64 Jan 1 00:00 event0
crw------- 1 0 0 13, 63 Jan 1 00:00 mice
crw------- 1 0 0 13, 32 Jan 1 00:00 mouse0
3.然后 cat /proc/bus/input/devices
I: Bus=0019 Vendor=dead Product=beef Version=0102
N: Name=S3C24XX TouchScreen
P: Phys=
S: Sysfs=/devices/virtual/input/input0
U: Uniq=
H: Handlers=mouse0 event0
B: PROP=0
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=3
4.cat /dev/input/event0,点击触摸屏,显示乱码。
5.没办法了,我换上了以前能用的tslib文件,问题依旧啊。
~~~~~~~~把我郁闷滴,人都快被折磨疯了,网上能试的方法都差不多了,我又记起了我新下载的tslib文件,是从官网上下载的,不同于网上流传的1.14版本,然后
#./autogen.sh
#./configure --host=arm-linux --prefix=/$BUILD/tslib/install
#make 2install.log
#make install 2install.log
不同于以前版本的编译,下面旧版本的编译方式,注意到红色的信息,新版本是不需要的。
#./autogen.sh
#./configure --host=arm-linux ac_cv_func_malloc_0_nonnull=yes CC=arm-linux-gcc --prefix=$BUILD/tslib/install?
#make 2install.log?
#make install 2install.log?
------------------------------------------------------------------------
编译好后,打包下载到开发板上,运行?ts_calibrate,点击触摸屏,它有反应了,ww,又试了目录下其他几个程序 ,ok(废话,当然行的)。
触摸屏驱动虽然移植成功了可是tslib没有作用,触摸屏还是没有用,$ W( `) b; O N6 V3 `* N
我用ts_test测试终端打印了
tslib: Selected device uses a different version of the event protocol than tslib was compiled for
查看tslib源代码发现打印该信息的语句在tslib的源代码的plugs文件夹中input-raw.c的, H0 d3 m$ K2 H: G J C D
static int check_fd(struct tslib_input *i)函数中,发现tslib在加载linux触摸屏驱动模块时会检查内核的输入子系统的
版本号:
if (ioctl(ts-fd, EVIOCGVERSION, version) 0) {
fprintf(stderr, tslib: Selected device is not a Linux input event device\n);
return -1;
}
上面程序段将驱动的版本号存放在整型的version中
if (version != EV_VERSION) {
fprintf(
显示全部