1.首先從網上下載的tslib-1.4.tar.gz

2.解壓tar xvzf tslib-1.4.tar.gz ; cd tslib

3.生成configure,這裡比一般的開源項目少做一步,要先運行解壓目錄下的腳本

  ./autogen.sh

4.用configure 生成Makefile.

  這裡按匯森移植規範移輸出到output目錄當中.

    即有如下目錄結構

  hxy_project

    |

    +-- docs

    |

    +-- output

    | |

    | + -- arm-linux #項目發布目錄

    |

    +--- libs

           |

           +-- tslib

生成腳本

  ./configure --host=arm-linux --prefix=$PWD/../../output/arm-linux ac_cv_func_malloc_0_nonnull=yes   --enable-inputapi=no

 

   其中ac_cv_func_malloc_0_nonnull=yes 是為解決如下編譯錯誤設置的






ts_test.o: In function `main':
ts_test.c:(.text+0x1d8): undefined reference to `rpl_malloc'
fbutils.o: In function `open_framebuffer':
fbutils.c:(.text+0xa20): undefined reference to `rpl_malloc'
collect2: ld returned 1 exit status

--enable-inputapi=no. 是為了解決運行中提示ts_open:Inappropriate ioctol for device,它表示
即不使用ioctl來控制觸摸屏。 但是我在幾個板沒有碰到這樣提示--enable-inputapi=no

5.編譯安裝

   make

   make install-strip #安裝strip後的庫

 #make install #安裝沒有strip庫版本.

 

 

配置與測試tslib  

  tslib只是應用級的一個程序庫,只是用來封裝底層的觸摸屏驅動的操作,以一個統一接口來給其它應用程序使用.因此tslib正常工作的前提是開發板上的觸摸屏驅動能正常工作.另外觸摸屏的效果往往需要在LCD上顯示,因此tslib也需要開發板上的FrameBuffer驅動正常工作.

   測試FrameBuffer 驅動的方法參見我的博文

  

   ARM開發板常見的觸摸屏驅動分為兩大類,一類是模擬HP 3600的調用接口.這類驅動一般使用/dev/h3600_tsraw 的設備結點文件.早期開發板一般都是這一類,

   另外一類是採用Linux 2.6 輸入設備接口的驅動。 這類驅動會將觸摸屏驅動設計成一個標準輸入事件設備(linux input layer event interface),所有事件輸入設備結點命名為/dev/input/eventN (N>=0).

 一般都是/dev/input/event0.而且驅動向應用程序發送標準的struct event 結構。

  ARM板使用哪種驅動接口.要參考產商的文檔或直接查看已經成功的程序使用哪一個。



 

 

  tslib 運行時需要一個關鍵的ts.conf來設置採用哪一種驅動。 另外還需要設定一些環境變量。 當編譯完tslib安裝後,在安裝目錄的etc下有一個ts.conf的模板。 如果使用h3600設備,則使用module_raw h3600,如果是使用輸入設備,則使用module_raw input.






#ts.conf template


module_raw input
#module_raw h3600


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



 

注意配置項要頂格寫,如果有空格,tslib將會u有段錯誤。 這是它的bug.

 

正常運行tslib 也需要配置一系列環境變量






#export TSLIB_ROOT=/usr/local/tslib
export TSLIB_ROOT=/mnt/hxy/output/arm_linux
#取決具體的設備驅動了,事件驅動用
export TSLIB_TSDEVICE=/dev/input/event0
#h3600用如下配置
# export TSLIB_TSDEVICE=/dev/h3600_tsraw
#觸摸屏定位文件保存位置
export TSLIB_CALIBFILE=/etc/pointercal
#tslib配置文件內容
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf
#tslib 插件目錄 
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
  export TSLIB_CONSOLEDEVICE=none
#LCD設備結點 
export TSLIB_FBDEVICE=/dev/fb0
#把libts.so加入動態搜索路徑
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TSLIB_ROOT/lib



 

將其放入ARM開發的Flash或NFS路徑下。 可以測試運行安幾裝目錄下的bin的幾個測試程序

運行ts_test.將會在屏幕出現如下界面。 點擊控制台將會有輸出。


創作者介紹
創作者 立你斯 的頭像
立你斯

立你斯學習記錄

立你斯 發表在 痞客邦 留言(0) 人氣()