android-- A10開發板--Tslib 移植心得體會

1.      tslib,其實從他的名字就能夠看出它的,它是touchscreenlib,其實這樣還不夠具體,其實它開始確實是爲了touchscreen的鼠標驅動而發展起來的,且只是一箇中間處理庫,即將原始數據進行調整,好比觸摸屏定位。只不事後來不知道什麼緣由,它火了,其餘圖形都支持這種方式,像高級版本的miniguiqt等成熟嵌入式圖形系統。正由於如此,它也就再也不侷限於touchsrceen,只要是輸入設備,只需在tslib裏實現,標準的圖形系統只需調用tslib的函數便可。 html

    它將其餘的輸入設備數據處理後成爲一個虛擬設備的數據,其餘的圖形系統只需使用這個虛擬的設備便可實現輸入設備的讀寫操做了。後來發現tslib只不過是一個應用級軟件,其餘的圖形系統使用的是tslib的函數,所以須要依賴這個庫. linux

 

2.      開發環境:
Ubuntu  10.0.4
開發板  A10
交叉編譯器  android平臺的arm-none-linux-gnueabi   android

3.      tslib 源碼所在位置 git

https://github.com/kergoth/tslib github

下載壓縮包,解壓,將文件夾拷貝到Ubuntn任意位置 ubuntu

4.      進入文件夾 api

生成configure 函數

  ./autogen.sh 工具

若是報錯: 測試

http://blog.csdn.net/ypoflyer/article/details/5765012

安裝tslib中遇到的錯誤:./autogen.sh: 4: autoreconf: not found

  是由於在不一樣版本的 tslib 下執行 autogen.sh 產生。它們產生的緣由同樣,

由於沒有安裝  automake 工具,  (ubuntu 10.04)用下面的命令安裝好就能夠了。

 sudo apt-get install autoconf automake libtool

 

配置的時候
確保你已經配置了android平臺的交叉編譯器arm-none-linux-gnueabi

./configure --host=arm-none-linux-gnueabi --prefix=/home/macro/tslib/mytslib   ac_cv_func_malloc_0_nonnull=yes  --enable-inputapi=no -static


注意要寫絕對路徑(指定文件夾的絕對路徑),未來拷貝的時候,在開發板上面也要是/home/macro/tslib/mytslib這個路徑才行哦!不懂的能夠繼續往下看

make

make install

那麼在mytslib文件夾中會出現以下四個文件夾

btn   etc  include  lib

 

etc/ts.conf 的參考配置:

# module_raw   input

#去掉 說明使用的是input 子系統的驅動模式到時候能夠查看開發板上面的/dev/input/eventN  (N>=0)

 

5.      將這四個文件夾中的內容,分別所有拷貝開發板的/home/macro/tslib/mytslib對應文件夾中,若是開發板沒有這個文件夾的話,你就建立一個,而後將etc,bin,include,lib內容拷貝進去

如何使用NFS的方式掛載進行拷貝的沒有什麼問題,

有問題的是我用的U盤進行拷貝  形成/lib軟連接失效,需重新link

進入/home/macro/tslib/mytslib /lib 

#busybox   rm  -rf  libts.so

# busybox   rm  -rf  libts-1.0.so.0

# busybox  ln  -s  libts-1.0.so.0.0.0  libts.so

# busybox  ln  -s  libts-1.0.so.0.0.0   libts-1.0.so.0

 

6.      在進行測試以前要在開發板上配置以下操做

 

mkdir /data      -----你能夠先查看一下/目錄有沒有data,若是有的話就不用這條命令

touch /data/pointercal -----你能夠查看一下若是有/data/ pointercal文件的話不用這條命令

7.      配置環境變量,使tslib能夠在開發板上面運行

export TSLIB_ROOT=/home/macro/tslib/mytslib  #我在編譯tslib的時候指定的文件夾

export TSLIB_FBDEVICE=/dev/fb0 #觸摸屏的效果每每須要在LCD屏幕上顯示,LCD設備節點

export TSLIB_TSDEVICE=/dev/input/event1  #取決於具體的驅動設備了,事件驅動

export TSLIB_CALIBFILE=/data/pointercal   #校準數據存儲位置

 

export TSLIB_CONFFILE=$TSLIB_ROOT /etc/ts.conf  #配置文件存儲使用哪一種驅動模塊inputh3600

export TSLIB_PLUGINDIR=$TSLIB_ROOT /lib/ts   #tslib的插件目錄(濾波,去抖,校準)

export TSLIB_CONSOLEDEVICE=none  #據本人猜想是 不對LED進行控制

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib  #libts.so加入動態搜索路徑

 

8.      而後能夠進行測試了進入開發板的/home/macro/tslib/mytslib/bin文件夾中

先運行ts_calibrate進行校準


運行ts_test進行測試


參考文獻:

http://www.cnblogs.com/uvsjoh/archive/2011/08/25/2152947.html

http://www.360doc.com/content/12/0616/11/6828497_218489666.shtml

相關文章
相關標籤/搜索