####################################################################################################
#操作系统: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添加程序图标,这个的实现将在后期贴出。