添加如下内容:
QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-x86
PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-x86/lib:$LD_LIBRARY_PATH
保存退出,移到/usr/local/Trolltech/QtEmbedded-4.5.2-x86 中。 6.3 qt-embedded-arm 环境变量设置 vi setenv-arm.sh 添加如下内容:
QTEDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-arm
PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-arm/bin:$PATH
LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.5.2-arm/lib:$LD_LIBRARY_PATH
保存退出,移到/usr/local/Trolltech/QtEmbedded-4.5.2-arm 中。 6.4 各版本使用方法
我们在运行的时候分别运行对应的脚本即可,比如我们要用 qt-x11: cd /usr/local/Trolltech/Qt-4.5.2 source setenv.sh
然后就可以用 qmake designer 等工具了。 7 运行库移植到mini2440 板
7.1 在 mini2440 板上建立目录 在 mini 2440 板建立如下目录:
/usr/local/Trolltech/QtEmbedded-4.5.2-arm/bin /usr/local/tslib
把电脑端 /usr/local/Trolltech/QtEmbedded-4.5.2-arm/lib下面所有的东西放到板子的 /usr/local/Trolltech/QtEmbedded-4.5.2-arm/lib
7.4 复制触摸屏软件
复 制 PC 机 上 /usr/local/tslib/ 目 录 下 的 全 部 文 件 ( 含 子 目 录 ) 到 mini 2440 上 的 /usr/local/tslib 目录下
7.5 在开发板上建立环境变量
修改开发板上/etc/profile 文件,增加以下内容:
export QTDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-arm export QPEDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-arm export TSLIB_ROOT=/usr/local/tslib export PATH=$QTDIR/bin:$PATH
export TSLIB_CONSOLEDEVICE=none export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event0
export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf export TSLIB_CALIBFILE=/etc/pointercal
export QWS_MOUSE_PROTO=Tslib:/dev/input/event0 export QWS_DISPLAY=LinuxFb:/dev/fb0 export QWS_SIZE=320x240 export
LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$QTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH
7.6 使触摸屏生效
修改 mini2440 上/usr/local/tslib/etc/ts.conf 文件:把第二行# module_raw input 前面的#
和空格去除,保存退出。 7.7 校准触摸屏
触摸屏的前提是你的触摸屏驱动已经写好, 并加载进了内核。
你可以测试有没有加载触
摸屏驱动, /dev/input/event0(这只是我的板子上的触摸屏) , 点击触摸屏, cat /dev/input/event0 看终端有无显示,
若有则表明正确。重新启动开发板,执行: cd /
cd /usr/local/tslib/bin ./ts_calibrate 校准触摸屏 ./ts_test 测试触摸屏
如果正常,QT4 Embedded 移植成功! 8 mini2440 板开机自动运行自己的程序
本来是准备开机以后运行 qtopia 再运行自己的程序,但是本来能全屏运行的程序通过
rcS 自动运行后并不能全屏显示,qtopia 的任务栏仍然在。所以就决定不用 qtopia,直接在
目标板上运行程序。 首先按照 12.7.1、 12.7.2、
12.7.3 和 12.7.4 移植相应的运行库到开发板, 然后修改 mini2440
上 /dev/init.d/rcS 如下: (在/etc/init.d/下,作者写错了) 添加环境变量
export set HOME=/root
export set TSLIB_ROOT=/usr/local/tslib export set TSLIB_CONSOLEDEVICE=none
export set TSLIB_TSDEVICE=/dev/input/event0 export set TSLIB_FBDEVICE=/dev/fb0
export set TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf export set TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts export set TSLIB_CALIBFILE=/etc/pointercal
export set QTDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-arm export set QPEDIR=/usr/local/Trolltech/QtEmbedded-4.5.2-arm export set PATH=$QTDIR/bin:$PATH
export set QWS_MOUSE_PROTO=\ export set QWS_DISPLAY=LinuxFb:/dev/fb0 export set
LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$QTDIR/lib:/usr/local/lib:$LD_LIBRARY_PATH
将 rcS 文件中的最后 3 行: /bin/qtopia & echo \
\
echo \ 替换为:
$QPEDIR/bin/check -qws & echo \
\
echo \
(其实倒数第 3 行是启动代码了,最后两行只是在屏幕上显示一句话,不是重点目标。 )
将可执行程序 check 放在/usr/local/Trolltech/QtEmbedded-4.5.2-arm/bin 目录下, 开机将从 ,不启动 QTOPIA,触摸屏能用,成功。 自己的程序 check 启动($QPEDIR/bin/check -qws &) 注:&表示在后台运行 (如果你出现下面问题:
Couldnt load module input
No raw modules loaded. QWSTslibMouseHandlerPrivate: ts_config() failed with error: 'No such file or di' Please check your tslib installation!
我的解决方法是:重新输入一次export
TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts就可以解决触摸屏不能使用的问题 ) 总结:
这 里用到的Qt库与开发板Qtopia的库无关的(我尝试着把开发板/opt/Qtopia下的全部删除了也可以运行下载进去的程序),触摸屏也无关。所以 即使没有编译成功触摸屏的库,可以从开发板中复制过去即可。问题是一开始设计PC端QtEmbedded-...-arm的./configure中触摸 屏的路径必须与你现在要复制到开发板中的触摸屏的路径一样。同样我们要把已经编译安装了的QtEmbedded-...-arm的./configure 的Qt库路径,在开发板端模拟一个和PC一样的路径,然后把PC
端的lib复制过去就可以了。
意思就是开发板和PC端路径一样,只是开发板端只需要库而已,当然触摸屏得全要。
整个移植最需要注意的 地方就是设计QtEmbedded-...-arm的./configure那块了,其它就没什么了。
(到此移植部分结束)