歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Tiny6410移植tslib1.4

系統:Ubuntu 11.04

 編譯工具:arm-linux-gcc 4.3.2 

 編譯目標:tslib1.4      

 (1)安裝 arm-linux-gcc 4.3.2 ,請參照 http://www.linuxidc.com/Linux/2012-03/56658.htm

 (2)將tslib-1.4.tar.gz解壓到任一目錄

 (3)進入tslib目錄 cd tslib

相關閱讀:Ubuntu 10.10下Mini2440 tslib1.4移植 http://www.linuxidc.com/Linux/2011-04/34348.htm


由於tiny6410的一線觸摸,所以需要改程序,照別人的: 

 

打開tslib/plugins/input-raw.c

把其中的ts_input_read 函數改成如下:

  1. static int ts_input_read(struct tslib_module_info *inf,  
  2.     struct ts_sample *samp, int nr)  
  3. {  
  4.     printf ("HEAD=== ts_input_read in INPUT-RAW.C\n");  
  5.     struct tslib_input *i = (struct tslib_input*)inf;  
  6.     struct tsdev *ts = inf->dev;  
  7.     struct input_event ev;  
  8.     int ret = nr;  
  9.     int total = 0;  
  10.     unsigned long jjts;  
  11.     while(total<nr)  
  12.     {  
  13.         ret =read(ts->fd, &jjts,sizeof(jjts));  
  14.   
  15.        if (ret==-1) continue;  
  16.   
  17.       samp->pressure=(jjts>>31)& 0x01;  
  18.       samp->x=(jjts>>16)& 0xffff;  
  19.       samp->y=jjts & 0xffff;  
  20.           
  21.       samp++;  
  22.       total++;  
  23.     }  
  24.   
  25.     ret=total;  
  26.     return ret;  
  27.   
  28. }  

 (4)安裝庫支持:

sudo apt-get install autoconf automake libtool


(5)export PREFIX=/opt/tslib                  設置目標位置

(6)./autogen.sh                                     用於生成configure腳本

(7)echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache          產生一個cache文件arm-linux.cache,欺騙configure

(8)CC=arm-linux-gcc ./configure --host=arm-linux --prefix=$PREFIX --cache-file=arm-linux.cache

(9)make

(10)make install

  編譯成功後在目標位置產生/bin、/etc、/include、/lib 4個文件夾
(11)修改/opt/tslib/etc/ts.conf 文件,刪除其中內容,改為

           module_raw input

           module pthres pmin=1
           module variance delta=30
           module dejitter delta=100
           module linear

第一行是tslib從linux的輸入設備讀取數據時需要用到的模塊,這裡指定的模塊為input,具體需要用到哪個模塊,需要參考其他數據。
第二行的pthres為Tslib提供的觸摸屏靈敏度門檻插件。
第三行的variance為Tslib提供的觸摸屏濾波算法插件。
第四行的dejitter為Tslib 提供的觸摸屏去噪算法插件。
第五行linear為Tslib提供的觸摸屏坐標變換插件。

(12)將/opt下的tslib文件夾拷貝到arm文件系統的/opt下

(13)設置環境變量腳本tslib.sh

  1.    #!/bin/sh  
  2. export TSLIB_ROOT=/opt/tslib  
  3. export TSLIB_TSDEVICE=/dev/touchscreen-1wire  
  4. export TSLIB_CALIBFILE=$TSLIB_ROOT/etc/pointercal  
  5. export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf  
  6. export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts  
  7. export TSLIB_CONSOLEDEVICE=/dev/tty  
  8. export TSLIB_FBDEVICE=/dev/fb0     

(14)啟動arm板,命令行下執行腳本

          source tslib.sh


(15)校准觸摸屏

           cd /opt/tslib/bin

           ./ts_calibrate


          會出現校准畫面,完成後生成pointercal 文件


 (16)鏈接

          ln -s /opt/tslib/etc/pointercal /etc/pointercal


 至此,tslib1.4移植完成

Copyright © Linux教程網 All Rights Reserved