在保全tiny6410功能的前提下運行自己的Qt4程序(上)

####################################################################################################

 

#操作系統: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添加程序圖標,這個的實現將在後期貼出。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章