系统环境:
Centos 6.4 x64
首先,下载tslib 1.4版本。地址就不写了。
然后解压tslib压缩文件。
# tar -xvf tslib-1.4.gz
# cd tslib
#./autogen.sh
# sed -i 's/#undef malloc/\/\/&/g' config.h.in
# echo "ac_cv_func_malloc_0 _nonnull=yes">hzwy23.cache
#./configure --host=arm-linux --cache-file=hzwy23.cache --enable-inputapi=no --prefix=/usr/local/tslib
# make
# make install
通过上面的命令后,编译好的tslib就在/usr/local/tslib目录中。目录中有如下几个文件:
bin etc include lib
将上面4个文件夹复制到开发板的/usr/local目录中。然后修改开发板/usr/local/etc/ts.conf文件内容:
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
通过上面的过程,基本上tslib已经移植到开发板上了。
下面对开发板进行一些配置,首先修改环境变量/etc/profile.在这个文件中追加下面内容:
export LD_LIBRARY_PATH=/usr/local/lib
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_CONFFILE=/usr/local/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/local/lib/ts
export TSLIB_CONSOLEDEVICE=none
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_FBDEVICE=/dev/fb0
重启开发板。如果出现触摸屏校准界面,且点击可以识别,表明移植成功了。
如果不成功,可以手动运行开发板下面程序/usr/local/bin/ts_calibrate程序。这个程序是触摸屏校准程序。如果不能运行,表明系统不能找到/dev/input/event0.这时可以检查下内核是否配置了s3c2440的触摸屏驱动。进入kernel,执行make menuconfig
Device Drivers --> Input device support --> Event interface
Device Drivers --> Input device support --> Touchscreens --> S3C2410 Touchscreens ...是否选中。
新版的友善之臂提供的P35屏幕采用一线触摸,而s3c2440片内的触摸控制器采用4线。默认情况下,P35屏幕是不能使用S3C2440片内的触摸驱动的。如果想让s3c2440片内触摸驱动支持P35屏幕,需要修改P35硬件版(修改很简单,几秒钟就改好了)