LINUX设备驱动之触摸屏tslib编译使用方法

来源:互联网 发布:数据库不能附加 编辑:程序博客网 时间:2024/05/25 18:12

启动:
nfs 30000000 192.168.1.105:/work/nfs_root/uImage_digitpic; bootm 30000000

安装:
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool

编译:
tar xzf tslib-1.4.tar.gz
cd tslib
./autogen.sh

mkdir tmp
echo “ac_cv_func_malloc_0_nonnull=yes” >arm-linux.cache
./configure –host=arm-linux –cache-file=arm-linux.cache –prefix=$(pwd)/tmp
make
make install

安装:
cd tmp
cp * -rf /work/nfs_root/fs_mini_mdev_new

使用:

先安装s3c_ts.ko, lcd.ko

1.
修改 vi /etc/ts.conf第1行(去掉#号和第一个空格):

# module_raw input改为:module_raw input

就是“#”和前面的空格都去掉;

2.
设置环境变量

export TSLIB_TSDEVICE=/dev/event0export TSLIB_CALIBFILE=/etc/pointercalexport TSLIB_CONFFILE=/etc/ts.confexport TSLIB_PLUGINDIR=/lib/tsexport TSLIB_CONSOLEDEVICE=noneexport TSLIB_FBDEVICE=/dev/fb0

ts_calibrate

出现错误
/ # ts_calibrate
xres = 480, yres = 272
selected device is not a touchscreen I understand

原因:tslib中的输入系统和内核input系统版本不匹配,当然也有其他原因;
是EV_VERSION这个函数配置出了问题;

解决方案
在/usr/local/arm/4.3.2 中 grep “EV_VERSION” * -nR
得到
arm-none-linux-gnueabi/libc/usr/include/linux/input.h:32:#define EV_VERSION 0x010000
应该改为和内核一样 内核中EV_VERSION的值为 0010001;
记得chmod +w input.h 还有 sudo vi input.h
然后:
回到tslib,进行make clean

然后又make make install 然后进入tmp后cp * -rf /work/nfs_root/fs_mini_mdev_new
回到开发板:
再进行ts_calibrate又出现错误;
vi /etc/ts.conf第1行(去掉#号和第一个空格):

ts_test

cat /proc/mymsg

replay_r, replay_w0x00075cf7 0x00000003 0x00000018 00x00076617 0x00000003 0x00000018 00x00076617 0x00000003 0x00000018 00x00076617 0x00000003 0x00000018 00x00076617 0x00000003 0x00000018 00x00076617 0x00000003 0x00000018 00x0007661b 0x00000003 0x00000018 00x0007661b 0x00000003 0x00000018 00x0007661b 0x00000003 0x00000018 00x0007661b 0x00000003 0x00000018 00x0007661b 0x00000003 0x00000018 0
原创粉丝点击