開發環境:
Linux-2.6.32.2內核 Fedora 10虛擬機 gcc4.3.2版本的交叉編譯器 mini2440開發板
tslib-1.4的安裝與移植
1、解壓安裝tslibtar -zxvf tslib-1.4.tar.gzslib
./autogen.sh
ech
cd to "ac_cv_func_malloc_0 _nonnull=yes">arm-linux.cache
./configure --host=arm-linux --cache-file=arm-linux.cache --enable-inputapi=no -prefix=/usr/local/tslib
make
make install
vi /usr/local/tslib/etc/ts.conf
增加下面內容:(原來內容刪除!!)
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
說明:在該文件增加的內容在每一行不能有空格。否則運行./ts_calibrate會出現segmentation fault的錯誤
3、將整個tslib 目錄拷貝到開發板/usr/local目錄下。其實你可以隨便放到某個目錄下,不過下面的環境變量配置要根據這個目錄來設置!!
說明:其實複製lib目錄下libts-0.0.so.0、libts.so、libts-0.0.so.0.1.1 庫文件和ts目錄下的*.so文件
etc目錄下ts.conf文件
bin目錄下都是觸摸屏的測試程序,其中ts_calibrate是校正屏幕的,其他是做其他測試用的。
4、設置開發板配置環境變量vi /etc/profile
添加如下內容:
export TSLIB_ROOT=/usr/local/tslib 指明路徑的,這個要根據tslib所在路徑來設置
export TSLIB_TSDEVICE=/dev/input/event0 指定觸屏設備(視自己情況而定,有些在dev/event0)
export TSLIB_CALIBFILE=/etc/pointercal 指定觸摸屏校準文件 pintercal 的存放位置
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf 指定 TSLIB 配置文件的位置
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts 指定觸摸屏插件所在路徑
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib
export TSLIB_FBDEVICE=/dev/fb0 指定幀緩衝設備(視自己情況而定)
export TSLIB_CONSOLEDEVICE=none 設定控制檯設備爲 none ,否則默認爲 /dev/tty
添加完成後reboot系統!!!
5、測試
5.1進入開發板etc目錄,查看是否有pointercal文件。如果有,一定要先把它刪除,否則所有的tslib測試程序 一運行都是直接提示 segmentation fault錯誤!!!!5.2確保觸屏設備和幀緩衝設備都已經加載到內核中
5.3進入/usr/local/tslib/bin目錄運行測試程序
5.4移植成功以後可以修改/etc/init.d/rcS文件,在裏面添加/sbin/insmod s3c2410_ts.ko讓系統開機自動加載觸摸屏驅動。這樣原來配置好pointercal文件還可以用,否則會變成空的。估計是觸摸屏驅動動態插入內核,重啓系統後驅動要重啓加載。這時候如果你沒有將空的 pointercal刪除就執行屏幕校正測試程序就會出現segmentation fault錯誤了。
移植安裝 http://blog.chinaunix.net/uid-12461657-id-2975918.html
tslib出錯集合 http://blog.sina.com.cn/s/blog_6410b69201014mzk.html