完成了 Qt 接下來就是要讓觸控面板的功能也起來
因為之前有兩篇教學了
所以這篇照片可能會跳的比較快
不懂的話可以回去看看前兩篇的設定
[達文西] 建置開發環境 – Based on EDK6446 with LEOs for DaVinci
[達文西] Qt 移植 – Qt Porting to SBC6446 with LEOs for DaVinci
為了之後的方便
所以先切換到 root 去比較好辦事
sudo su
然後切換到opt的資料夾去
cd /opt/
下載觸控套件 tslib
wget http://download.berlios.de/tslib/tslib-1.0.tar.bz2
下載下來以後當然是解壓縮囉
tar -jxvf tslib-1.0.tar.bz2
解壓縮完以後就進道該目錄
cd tslib-1.0
再進行下一步之前先安裝兩個套件
apt-get install automake libtool
安裝完以後直接輸入底下指令
./autogen.sh
這是為了要產生
configure 檔要用來 make 的
這是輸入完上面那指令之後的畫面
接下來就是要下一些設定檔了
跟qt還蠻像的
下組態囉
./configure -prefix=/opt/tslib
CC=arm-unknown-linux-gnueabi-gcc CXX=arm-unknown-linux-gnueabi-g++
-host=arm-linux ac_cv_func_malloc_0_nonnull=yes
-prefix=/opt/tslib 可以指定你要安裝的目錄在那邊
可以自己改
等跑完以後接下來就是要 make了
放心~這不是 qt 所以只要幾分鐘就可以了
make
make 完以後就是要安裝啦!!
make install
安裝完以後的東西會再你設定的那路徑
我剛剛是在/opt/tslib
所以看看裏面有啥檔案囉
cd /opt/tslib
ls
我們會發現有四個資料夾
觸控得部份到此就算成功了
再下來就是要把他放到 qt 裏面了
很不幸的…需要從編 qt
cd /opt/qt-embedded-linux-opensource-src-4.5.0
接下來就是要下組態指令囉
不過這邊跟上一篇不一樣唷
因為我們要加入觸控功能
./configure -embedded arm -qt-zlib -qt-libpng -qt-gif -qt-libtiff
-qt-libmng -qt-libjpeg -qt-freetype -no-openssl -qt-mouse-tslib
-L /opt/tslib/lib -I
/opt/tslib/include
紅色的部份就是我們剛剛編好的觸控功能
選擇 yes 開始組態
之後就要開始漫長的等待囉
make
等了快一個半小時以後
編好又沒有錯誤就安裝吧
make install
接下來將安裝的檔案複製到nfs的資料夾(要給版子的)
之前設定是在/opt/target
cp -a /usr/local/Trolltech /opt/target/usr/local/
因為有兩個檔案 librt.so.1 librt-2.4.so 需要複製到 lib 資料夾去
所以
cp -a /opt/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/lib/librt.so.1 /opt/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/lib/librt-2.4.so /opt/target/usr/local/Trolltech/QtEmbedded-4.5.0-arm/lib
接下來用 minicom 進到板子裡面
不會的請回去看上兩篇
接下來要設定一些環境變數
話請回去上前兩篇…
之後設定一些環境變數
export QTDIR=/usr/local/Trolltech/QtEmbedded-4.5.0-arm
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export
QWS_MOUSE_PROTO="tslib"
紅色的部份是新增的
接下來先不要急著執行範例程式
因為接下來這問題我卡了好幾天
原來板子要先矯正過邊界
才可以正常執行觸控面板
所以先下底下指令來設定一下邊界
ts_calibrate
出現這畫面以後
看到左上角那個正方形了沒
按了他又會跑出另外一個
跟著把他全部按光光
就會出現藍色的畫面了
當然
這不是微軟的藍白當
請不要擔心
執行完以後會顯示這些東西
不管他
直接執行另外一個程式
下了底下這指令會有更好玩的東西唷
ts_test
基本上到這邊已經可以正常執行 qt 裏面的 demo 程式了
哈哈~
有人知道這上面是啥意思嗎?
樹德科技大學 資訊工程系
justfor1221
唉~早知道就自己買一個網址來用了
這樣就可以打廣告了
按下鍵盤上面的 Ctrl + C
結束這支程式
然後切換到 Qt 的範例程式資料夾
cd /usr/local/Trolltech/QtEmbedded-4.5.0-arm/demos/
看要執行哪一個隨便自己挑囉
./textedit/textedit -qws
記得阿~
都要加上 -qws
可以選擇東西
也可以反白囉!!
标签: tslibts_calibratets_testarm移植calibrate触摸屏校正 |
分类:TouchScreen |
转载时请表明原文出处(http://blog.sina.com.cn/wyw1976)及作者邮箱([email protected])
本文关注的是tslib的编译和使用。
1. 下载最新源码 (v1.4)
apt-get source tslib
2. 运行 "autogen.sh"
3. 运行 "./configure --host=arm-linux"
4. 在tslib-1.0中运行make
可能报错“ts_test.c:(.text+0x200): undefined reference to `rpl_malloc'”,原因是在tslib-1.0/config.h中有一行定义“#define malloc rpl_malloc”,直接注释即可,除非你自己实现了一个malloc版本
5.重新make, 成功。
按照上述步骤编译成功后, 相应的binaries存在如下目录中:
tslib-1.0/src/.libs : libts.so
tslib-1.0/plugins/.libs: 所有的plugin odule, 如input.so, pthres.so, linear.so等
tslib-1.0/tests/.libs: 所有的测试实例,ts_calibrate, ts_harvest等。
6. 运行ts_calibrate and ts_test
(1)在运行tslib-1.0/tests/.libs/ts_calibrate之前,需要设计一些环境变量,它们是:
export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_CONFFILE=/test/ts_lib/tslib-1.0/etc/ts.conf
export TSLIB_PLUGINDIR=/test/ts_lib/tslib-1.0/plugins/.libs
export LD_LIBRARY_PATH=/test/ts_lib/tslib-1.0/src/.libs
export TSLIB_CALIBFILE=/test/ts_lib/tslib-1.0/etc/pointercal
后面的目录指向开发板上的目录(如nfs等)
(2)在tslib-1.0/tests 目录下有一个ts_calibrate的程序,这是一个脚本程序,是对tslib-1.0/tests/.libs/ts_calibrate的封装,如果直接运行这个脚本,在我的机器上出现“segmentation Fault"
(3)我选择直接运行tslib-1.0/tests/.libs/ts_calibrate, 报错“No raw modules loaded.”, 原因是缺省时,tslib将etc/ts.conf中所有的raw module 注释掉了,打开第一项“module_raw input”。
(4) 重新运行,应该成功.在屏幕上出现需要校正的“+”,校验后的结果存在在TSLIB_CALIBFILE中。