####################################################################################################
#操作系統:fedora 17 (Linux kernel 3.3.4基於GNOME 3.4桌面環境)
#開發板:友善之臂Tiny6410 V1.2
#QT: 4.6.1
#QTE-arm:4.7.0
#Write By Kinglate 20130410
####################################################################################################
行文前說明:本學習文檔是的指令均是對tiny6410開發板進行的操作,因此這個#代表的是minicom上的提示符!
0.引言
最近需要利用友善之臂提供的系統來嵌入自己編寫的Qt4程序,發現運行了系統之後,再運行Qt4程序,等價於把該程序的界面打開而已,根本無法對該程序進行操作,經過研究與學習,暫時發現瞭解決該問題的方法。
1.準備程序(Qt4程序名爲texthello)
把Qt4的程序在開啓系統後複製到/bin目錄下或者做文件系統時就把Qt4的程序做好在/bin目錄下也行
2.退出Qtopia-2.2.0系統
在運行任何Qt4.7程序之前,需要先退出Qtopia2.2.0 或者Qt-Extended4.4.3 等一切Qt程序,退出Qtopia2.2.0的方法是:在Qtopia2.2.0中點“設置”中的“關機”可出現如下界面,點“Terminate Server”即可關閉Qtopia-2.2.0系統。
(也可以使用其他的方法,比如在啓動腳本/etc/init.d/rcS中註釋掉qtopia啓動項,再重新系統系統;或者使用killall命令殺死相關的進程(比較多);甚至是直接刪除/opt目錄中的所有內容重啓。)
3.設置Qt4.7所需要的環境變量
把setqt4env這個shell腳本在開啓系統後複製到/bin目錄下或者做文件系統時就把該shell腳本做好在/bin目錄下也行
P.S.setqt4env中的內容爲:
f [ -e /etc/friendlyarm-ts-input.conf ] ; then
. /etc/friendlyarm-ts-input.conf
fi
true ${TSLIB_TSDEVICE:=/dev/touchscreen}
TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_TSDEVICE
export TSLIB_CONFFILE
export TSLIB_PLUGINDIR=/usr/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_DISPLAY=:1
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/usr/local/bin
if [ -c /dev/touchscreen ]; then
export QWS_MOUSE_PROTO="Tslib MouseMan:/dev/input/mice"
if [ ! -s /etc/pointercal ] ; then
rm /etc/pointercal
/usr/bin/ts_calibrate
fi
else
export QWS_MOUSE_PROTO="MouseMan:/dev/input/mice"
fi
export QWS_KEYBOARD=TTY:/dev/tty1
export HOME=/root
[root@FriendlyARM Qtopia4.4.3]# chmod +x /bin/setqt4env
[root@FriendlyARM Qtopia4.4.3]# . setqt4env
-/bin/sh: /bin/setqt4env: line 1: f: not found
-/bin/sh: /bin/setqt4env: line 3: syntax error: unexpected "fi"
[root@FriendlyARM Qtopia4.4.3]# vi /bin/setqt4env
if [ -e /etc/friendlyarm-ts-input.conf ] ; then
. /etc/friendlyarm-ts-input.conf
fi
true ${TSLIB_TSDEVICE:=/dev/touchscreen}
TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_TSDEVICE
export TSLIB_CONFFILE
export TSLIB_PLUGINDIR=/usr/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_DISPLAY=:1
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/usr/local/bin
if [ -c /dev/touchscreen ]; then
export QWS_MOUSE_PROTO="Tslib MouseMan:/dev/input/mice"
if [ ! -s /etc/pointercal ] ; then
rm /etc/pointercal
/usr/bin/ts_calibrate
fi
else
export QWS_MOUSE_PROTO="MouseMan:/dev/input/mice"
fi
export QWS_KEYBOARD=TTY:/dev/tty1
export HOME=/root
4.給該shell腳本設置可執行權限,並且執行它:
# chmod +x /bin/setqt4env
# . setqt4env
(注意:“.”與setqt4env之間要有一個空格隔開,這是執行shell的方法之一)
5.接着就可以在/bin目錄下大膽地執行該Qt4程序了!
# cd /bin/
# texthello -qws
6.待完善之處
執行該Qt4程序之後還不懂得如何恢復到主界面,暫時想到的解決方案是在Qtopia上爲texthello添加程序圖標,這個的實現將在後期貼出。