注意:不要使用自带或使用apt-get 安装的 QT,如有,则删除。开发板须能挂载NFS。本文采用了别人的教材,只是自己稍加上修改,因为刚开始找文件做的时候发现很多容易出错的,这里都加以说明了
所需原文件:
a. arm-linux-gcc-3.4.1.tar.bz2
b. Qt-4.6.3-arm.tar.bz2
c. Qt-4.6.3-x86.tar.bz2
d. Qt-4.7.0.tar.bz2
e. Qt-sdk-linux-x86-opensource_2010.02.bin
f. tslib-1.4.tar.gz
操作步骤:
1、检查电脑上有没有g++ : g++ –version,
如果没有,请使用下面命令安装: sudo apt-get install g++
2、检查有没有arm-linux-gcc: arm-linux-gcc –version,
如果没有,请使用步骤4 进行安装,如果有,则跳 过步骤4、
4、解压arm-linux-gcc-3.4.1.tar.bz2
sudo tar jxvf arm-linux-gcc-3.4.1.tar.bz2 -C / 自动解压到usr/local
进入/usr/local/arm/3.4.1/bin/ 输入pwd
设置到环境变量:sudo gedit /etc/environment
在其中按照格式添加::/usr/local/arm/3.4.1/bin (arm-linux-gcc 路径)
保存后source /etc/environment (使刚才的环境变量生效)
arm-linux-gcc 检查是否命令是否存在
5、解压安装触摸屏驱动
# sudo apt-get install libtool
# sudo apt-get install autoconf
#sudo apt-get install automake
#tar xzvf tslib-1.4.tar.gz
#cd tslib
# ./autogen.sh
# CC=arm-linux-gcc
# echo “ac_cv_func_malloc_0_nonnull=yes” > arm-linux.cache
# ./configure –prefix=/opt/ts/ –host=arm-linux –cache-file=arm-linux.cache
# make
# sudo make install
可能有参数错误在文件下/tests/calibrate.c 文件的227、229 行参数后面补0 再重新
make
6、把编译好的触摸屏驱动加到板子上
6.1、将交叉编译好的ts 文件cp 到开发板中对应的目录下,其中的include
目录和lib 下的pkgconfig 目录可以不拷贝。
cp -rf /opt/ts /home/zrx/s3c2440_recover/opt/ts ?注意这个路径
你的主机NFS 文件地址
6.2、检查ts/etc/ts.conf 内容:
1 module_raw input #把第二行前面的“# ”去掉
2 module pthres pmin=1
3 module variance delta=30
4 module dejitter delta=100
5 module linear
注意去掉“#”号时,前面的空格一定要去掉,否则后面会出段错误。
7、ARM 板上配置环境: (板子和电脑之间)
编辑目标环境下(/home/zrx/s3c2440_recover/etc)的/etc/profile, 在文件后面添加如
下内容:
export LD_LIBRARY_PATH=/lib:$LD_LIBRARY_PATH
export QTDIR=/usr/local/Trolltech/Qt-4.6.3-arm //注意这个路径
export QPEDIR=$QTDIR
export T_ROOT=/opt/ts 注意这个路径
export PATH=$T_ROOT/bin:$PATH
export LD_LIBRARY_PATH=$T_ROOT/lib:$QTDIR/lib:$LD_LIBRARY_PATH
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_PLUGINDIR=$T_ROOT/lib/ts
export TSLIB_CONFFILE=$T_ROOT/etc/ts.conf
export TSLIB_CALIBFILE=/etc/pointercal
export QWS_KEYBOARD=USB:/dev/input/event1
export QWS_MOUSE_PROTO=Tslib:/dev/event0
export QWS_DISPLAY=LinuxFb:mmWidth45:mmHeight60:0
export QWS_SIZE=320×240
5、拷贝QT 库文件
在目标环境中(/home/zrx/s3c2440_recover)
建立与编译QT-arm 一样的路径:
mkdir /usr/local/Trolltech/Qt-4.6.3-arm/lib /fonts/
上面要逐级建立目录
cp -rf /usr/local/Trolltech/Qt-4.6.3-arm/lib/fonts
/home/zrx/s3c2440_recover/usr/local/Trolltech/Qt-4.6.3-arm/lib ??注意这个路径
主机NFS
把以下的库文件从编译主机中的lib (/usr/local/Trolltech/Qt-4.6.3-arm/lib)复制目录中
的四个库文件复制到
目标板的lib (/home/zrx/s3c2440_recover/usr/local/Trolltech/Qt-4.6.3-arm/lib )
libQtCore.so.4.6.3
libQtGui.so.4.6.3
libQtNetwork.so.4.6.3
libQtSql.so.4.6.3
每个库文件创建有3 个连接:*.so,*.so.4,*.so.4.6 *.so.4.6.3,可以使用如下命令:
ln –s libQtCore.so.4.6.3 libQtCore.so.4.6
ln –s libQtCore.so.4.6.3 libQtCore.so.4
ln –s libQtCore.so.4.6.3 libQtCore.so
ln –s libQtCore.so.4.6.3 libQtGui.so.4.6
ln –s libQtCore.so.4.6.3 libQtGui.so.4
ln –s libQtCore.so.4.6.3 libQtGui.so
ln –s libQtCore.so.4.6.3 libQtNetwork.so.4.6
ln –s libQtCore.so.4.6.3 libQtNetwork.so.4
ln –s libQtCore.so.4.6.3 libQtNetwork.so
ln –s libQtCore.so.4.6.3 libQtSql.so.4.6
ln –s libQtCore.so.4.6.3 libQtSql.so.4
ln –s libQtCore.so.4.6.3 libQtSql.so
这些命令一定要用手写才能运行正确
其他几个文件操作相同
常用字库文件wenquanyi_120_50.qpf 复制到NFS 目标板共享目录下的的
usr/local/Qt-4.6.3/lib/fonts/
6、启动开发板,并且使用刚才配置的NFS 的共享目录作为开发板的文件系统,
进入bootloader 后,设置启动参数:
1 setenv bootargs ‘console=ttySAC0 root=/dev/nfs nfsroot=192.168.1.200:/home/fox/utuLinux2.6.24/s3c2440_recover_nogui ip=192.168.1.168:192.168.1.200:192.168.1.1:255.255.255.0:www.huiwen.com:eth0:off ‘
楼上的命令行主要,他是一句,中间有空格没有回车
注意:/home/(用户自己)/utuLinux2.6.24/s3c2440_recover_nogui
其中192.168.1.200是开发板服务的地址,可能是你的电脑或者是虚拟机的ip
保存启动参数:saveenv
boot 启动后可以看看env 命令输出的内容中有没有前面设置的环境变量,还可以启
动后对tslib 进行校准,输入命令:ts_calibrate,也可以使用命令ts_test 对tslib 进
行测试。
7、测试运行
编写一个简单的helloQT.cpp
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
QLabel label(“Hello World !”);
label.show();
return app.exec();
}
7.1、然后重新打开终端窗口,依次输入如下命令:
1 ~$ source /usr/local/Trolltech/Qt-4.7.0/setenv.sh
2 ~$ qmake –project
3 ~$ qmake
4 ~$ make
5 ~$ ./helloQT
这些命令要用手动敲入,并且一个.cpp文件只能由一个文件夹匹配否则编译的时候会出错,会出现好几个main编译
最后会看到helloQT 的运行结果。
7.2、如果是要进行x86 环境下的helloQT 的测试,则要使用如下的命令:
1 ~$ source /usr/local/Trolltech/Qt-4.6.3-x86/setenv.sh
2 ~$ qmake –project
3 ~$ qmake
4 ~$ make
5 ~$ qvfb –width 320 –height 240 &
6 ~$ ./helloQT -qws
7.3、如果要在arm 环境下执行helloQT
1 ~$ source /usr/local/Trolltech/Qt-4.6.3-arm/setenv.sh
2 ~$ qmake –project
3 ~$ qmake
4 ~$ make
5 ~$ cp helloQT /home/zrx/s3c2440_recover/home
注意这个路径
启动开发板,并/home/zrx/s3c2440_recover 作为工作文件系统,启
动后在开发板的Linux 中运行如下命令:
1 ~$ ./home/helloQT -qws
8 安装Qt-sdk-linux-x86-opensource_2010.02.bin UI 开发环境
1 sudo ./Qt-sdk-linux-x86-opensource_2010.02.bin
*注意:
*1. 如果在make 时提示缺少libts.so,这时可以在经过qmake 自动生成的
Makefile 后,打开Makefile,在LFLAGS 中加入-lts
1 LFLAGS = -Wl -lts -Wl,-O1 -Wl,-rpath,/usr/local/Trolltech/Qt-4.6.3-arm/lib
*2. 如果在运行的时候提示无法创建/tmp/xxxx, 有在开发板上运行:
mkdir /tmp
*3. 如果在运行时提示缺少libstdc++.so.4,这时可以在开发板Linux 上运
行:
1 ln –s /lib/libstdc++.so.60.0.3 /lib/libstdc++.so.4