tslib1 4 移植全過程

2021-07-10 19:56:29 字數 3072 閱讀 1014

l環境:

host:ubuntu11.10

target:omap35x evm

交叉編譯鏈:4.3.2,sourcery g++ lite 2008q1-126 for arm gnu/linux

tslib源**:tslib-1.4.tar.gz

tslib安裝目標路徑:/usr/local/arm-linux/tslib1.4

安裝步驟:

1.準備工作

確保以下軟體已安裝

# apt-get install autoconf(或autoconf2.13)

# apt-get install automake

# apt-get install libtool

3.配置

解壓源**tslib-1.4.tar.gz,並進入源**資料夾

# tar -zxvf tslib-1.4.tar.gz

# cd tslib

配置

# ./autogen.sh

# echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache

# ./configure --host=arm-none-linux-gnueabi --cache-file=arm-none-linux-gnueabi.cache --enable-inputapi=no --prefix=/usr/local/arm-linux/tslib1.4

注意,prefix選項更換為你的安裝路徑。

4.編譯

# make
5.安裝

# make install
編譯生成的庫,標頭檔案等都拷貝至prefix制定的路徑中。

修改ts.conf內容

開啟安裝路徑下的/etc/ts.conf檔案,修改其內容。

# vi /usr/local/tslib/etc/ts.conf
搜尋定位至#module_raw input,把行首的注釋符去掉,但要注意行首不要留有空格,即文字是頂格的,不然之後會出現段錯誤(segmentational fault)。

設定開發板環境變數

通過超級終端, 開啟環境變數檔案/etc/profile

# vi /etc/profile
新增如下內容:

export tslib_root=/usr/local/tslib

export tslib_tsdevice=/dev/input/event1

export qws_mouse_proto=tslib:/dev/input/event1

export tslib_calibfile=/etc/pointercal

export tslib_conffile=$tslib_root/etc/ts.conf

export tslib_plugindir=$tslib_root/lib/ts

export tslib_fbdevice=/dev/fb0

export tslib_consoledevice=none

export ld_library_path=$ld_library_path:$tslib_root/lib

其中,tslib_root更換為自己實際存放的路徑;

另外,tslib_tsdevice 和qws_mouse_proto這兩項需要檢視自己的板子的觸控螢幕裝置對應/dev/input/下那個檔案

9.執行測試命令

重啟開發板(使系統讀取profile環境變數),進入tslib/bin目錄,執行觸控螢幕校準程式

# ./ts_calibrate
如果出現tslib的觸控螢幕五點校準畫面,至此,tslib的安裝移植成功完成。

也可執行此目錄下其他的程式來體驗觸控螢幕!

10.出錯記錄

(1)第4步make時出現以下錯誤:

ts_test.o: in function `main':

ts_test.c:(.text+0x1d4): undefined reference to `rpl_malloc'

fbutils.o: in function `open_framebuffer':

fbutils.c:(.text+0x9f4): undefined reference to `rpl_malloc'

collect2: ld returned 1 exit status

make[2]: *** [ts_test] 錯誤 1

make[2]:正在離開目錄 `/home/zhuandi/programs/tslib1.4/tslib/tests'

make[1]: *** [all-recursive] 錯誤 1

make[1]:正在離開目錄 `/home/zhuandi/programs/tslib1.4/tslib'

make: *** [all] 錯誤 2

原因:直接copy了網路上的以下配置引數,引數中的」malloc_0 _nonnull」中多了乙個空格。

# ./autogen.sh

# echo "ac_cv_func_malloc_0 _nonnull=yes">arm-none-linux-gnueabi.cache

解決:刪除空格即可。

(2)第9步測試校準程式或其他程式時出現錯誤:egmentaton fault

原因:修改ts.conf時去掉注釋符號時,留下空格。

解決:刪除空格即可。

(3)第9步測試校準程式或其他程式時出現錯誤:觸控螢幕能顯示,但對其操作無反應。

原因:網路上一參考博文的環境配置,其中沒有export qws_mouse_proto=tslib:/dev/input/event1

解決:環境變數加上export qws_mouse_proto=tslib:/dev/input/event1 ,重啟板子即可。

詳解 tslib移植arm全過程

環境 ubuntu,交叉編譯器,tslib 1.4 移植步驟 第一步 獲取tslib的原始碼 使用git獲取tslib原始碼 git clone cd tslib第二步 編譯,安裝tslib 1.4 注意 在編譯tslib之前確認自己的電腦上已經安裝了automake autoconf libtoo...

tslib1 4移植與使用

一.首先在ubuntu中安裝以下工具包 sudo apt get install autoconf sudo apt get install automake sudo apt get install libtool 二.編譯 tar xzf tslib 1.4.tar.gz cd tslib ex...

tslib 1 4 移植編譯總結

在linux下面解壓,建立make.sh 指令碼 export path hom bbb gcc linaro arm linux gnueabihf 4.8 2014.03 linux bin path export cross compile arm linux gnueabihf make c...