歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Tslib和Qt 4.8.4與在開發板上的移植

Tslib和Qt 4.8.4與在開發板上的移植

日期:2017/2/28 14:33:53   编辑:Linux教程

這篇博客算是接著Linux 下編譯、安裝、配置 QT這篇的,搞完PC平台的就來弄一下嵌入式平台的,Linux的東西搞起來麻煩的地方就在於太雜、太散,像QT,各版本之間都有很多差異,因此在網絡上查找資料不能光看某一個,必須很多資料綜合來判斷、取捨。

好了,下面進入正題,本篇主要記錄QT的交叉編譯過程,這過程中很多東西我都試著去理解,去找出為什麼這樣做,然而畢竟時間有限,很多地方還不太清楚,只能先做了再說,後續的地方回頭慢慢理解。

Qt 的詳細介紹:請點這裡
Qt 的下載地址:請點這裡

推薦閱讀:

Ubuntu 環境下Gtk與QT編譯環境安裝與配置 http://www.linuxidc.com/Linux/2013-08/88539.htm

Linux系統下QT環境搭建 http://www.linuxidc.com/Linux/2013-07/87576.htm

Ubuntu下QT控制台程序無法運行的解決方案以及XTerm的配置方法 http://www.linuxidc.com/Linux/2013-06/86244.htm

Ubuntu 10.04下QT4.7.4移植詳解 http://www.linuxidc.com/Linux/2013-01/77930.htm

Linux下為剛安裝好的Qt Creator 創建桌面啟動圖標 http://www.linuxidc.com/Linux/2012-08/67214.htm

Ubuntu 11.04安裝QT Creator 2.5.0 http://www.linuxidc.com/Linux/2012-06/62607.htm

Qt creator for PlayBook安裝過程 http://www.linuxidc.com/Linux/2012-05/60652.htm

軟件平台


Linux:Ubuntu 12.04 X86

QT:4.8.4

交叉編譯工具鏈:gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)

tslib編譯與安裝


tslib是電阻式觸摸屏用於校准的一個軟件庫,是一個開源的程序,能夠為觸摸屏驅動獲得的采樣提供諸如濾波、去抖、校准等功能,通常作為觸摸屏驅動的適配層,為上層的應用提供了一個統一的接口。因此這裡先編譯安裝tslib,這樣在後面編譯Qt的時候才能打包編譯進去。

首先現在源文件 http://www.linuxidc.com/Linux/2011-08/40398.htm

編譯安裝過程很簡單

首先需要檢查一下軟件是否安裝

sudo apt-get install automake
sudo apt-get install autogen
sudo apt-get install autoconf

確定以上工具都已經安裝後,解壓安裝即可。

# tar -zxvf tslib-1.4.tar.gz
# cd tslib
# ./autogen.sh
#./configure --host=arm-linux ac_cv_func_malloc_0_nonnull=yes --cache-file=arm-linux.cache -prefix=/usr/local/tslib
# make
# make install

-prefix=/usr/local/tslib是指定安裝路徑,其實包括下文的安裝配置,路徑都可以不指定,默認就是安裝到/usr/local/目錄下

tslib的開發板移植與測試


將交叉編譯的tslib安裝到開發板上其實就是拷貝相關的文件並添加系統環境變量而已,所以相對操作較為簡單,主要的就是需要找對目錄就行。

按照上面的操作方法,交叉編譯安裝後的文件在/usr/local/tslib目錄下,因此需要拷貝的文件如下:

  1. /usr/local/tslib/lib文件下除去pkgconfig目錄外其他所有文件拷貝到開發板/lib目錄下
  2. /usr/local/tslib/etc下的ts.conf拷貝到開發板的/etc下,在復制對應目錄之前修改文件如下,也可以復制完成後修改。

下面是ts.conf文件的第一行與第二行

# Uncomment if you wish to use the linux input layer event interface
# module_raw input
去掉# module_raw input前面的注釋,一定要注意中間的空格也去掉,module頂格。

最後添加環境變量,通過超級終端在開發板系統中添加環境變量,可以在開發板文件系統的/etc/profile文件裡添加,也可以直接添加。

export TSLIB_TSDEVICE=/dev/input/touchscreen0
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/lib/ts

export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0

說明:
TSLIB_TSDEVICE //觸摸屏設備文件名。
TSLIB_CALIBFILE //校准的數據文件,由ts_calibrate校准程序生成。
SLIB_CONFFILE //配置文件名。
TSLIB_PLUGINDIR //插件目錄
TSLIB_CONSOLEDEVICE //控制台設備文件名
TSLIB_FBDEVICE //設備名

以上環境變量在實際開發中的實際配置可以根據實際情況決定。而這些指定的設備節點一定要和你的開發板上的/dev目錄下的設備節點相對應。

最後運行測驗程序

ts_calibrate 進行校驗
ts_test 進行測試

測試結果如下圖所示:

說明:這個開發板的官方給的交叉編譯工具鏈是arm-2007q3,而我這裡用的是OK6410開發板提供的工具鏈,這裡使用暫時沒發現啥問題,不排除其他程序開發中可能存在啥問題。

Copyright © Linux教程網 All Rights Reserved