在保全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添加程序图标,这个的实现将在后期贴出。

 

你可能感兴趣的:(linux,嵌入式,fedora,Tiny6410)